Módulos útiles
Clase 22 de 31 • Curso de Fundamentos de Node.js
Contenido del curso
Clase 22 de 31 • Curso de Fundamentos de Node.js
Contenido del curso
Ralph Ortega
Edwin Alexis Hernandez Vazquez
Aristides Fernando Pereyra Culebro
Andres Ramirez Restrepo
Julio Flores
ANTHONY JEAMPIER RANGEL RODRIGUEZ
Pablo Verduzco
Martin Paez
Anfernee Valera
Jose Luis Gutierrez Carcausto
Wladimir Rocha
Facundo Nicolás García Martoni
Bryan Key
Angel Cabrera
Alexander Nova Arevalo
Eduardo Rodriguez
Luis Abdel Rangel Castro
Alfredo Mauricio Aguirre Catucuago
Jimmy Buriticá Londoño
Juan Esteban Mejia Ortiz
Martin Munilla
Emilio Escobar
Carlos Arturo Rueda Calier
Jose Manuel Montaño Saenz
Alejandro Luján
Luis Fernando Tirado Hernández
abigailrp
Andres Roberto Coello Goyes
Ivan Santiago
Mateo Echeverri Betancur
Maximiliano Avendaño
Juan Gui Arenas
Markin Piero Pulache Guarniz
Jesús Enrique Sotelo García
Angel Hernandez
Jesús Enrique Sotelo García
Santiago Bastidas Rodríguez
Guillermo Sanchez
Wilson Castro Gil
No se pero este hombre le pone una emoción a esto que no puedo explicar, lo mejor es que esa misma emoción siento yo node es demasiado.
UwU
Tiene esa emoción porque le gusta su trabajo. Esta enamorado de lo que hace y eso es lo que hace a las personas mejorar. Todo un profesor.
La función de cifrado de bcrypt nos permite construir una plataforma de seguridad utilizando contraseñas encriptadas con Salt.
const bcrypt = require("bcrypt"); const password = "NuncaParesDeAprender2020"; bcrypt.hash(password, 5, function(err, hash){ console.log(hash) }); // La consola nos entregaria una contraseña distinta en cada oportunidad. // Para evaluar si una contraseña concuerda con un hash bcrypt.compare(password, hash, function(error, result){ console.log(result) console.log(error) }) // Nos va a responder **true** *(en el result)* o **false** *(en el error)* dependiendo si la contraseña puede generar el hash
Moment. js es una librería que nos permite solventar estos problemas e implementa un sistema de manejo de fechas mucho más cómodo.
const moment = require('moment') const ahora = moment(); // Para formatear una fecha ahora.format('MM/DD/YYYY HH:MM A'); // 04/11/2020 20:10 PM // Para validad una fecha moment('2020-04-11').isValid(); // Nos dara **true** o **false** dependiendo de si la fecha es valida o no // Para encontrar cuanto tiempo ha pasado hasta hoy moment('2018-04-11').fromNow(); // Hace 2 años // Para agregar o eliminar años, días o meses moment('2020-04-11').add(1, 'years'); // 2021-04-11 moment('2020-04-11').subtract(1, 'years'); // 2019-04-11
Sharp puede convertir imágenes grandes en imágenes JPEG, PNG más pequeñas y compatibles con la web de diferentes dimensiones.
const sharp = require('sharp') // La siguiente reducira una imagen de 120x120 o cualquier tamaño a 80x80 y lo guardara en una imagen mas pequeña sin eliminr la original. sharp('imagen.png').resize(80, 80).toFile('imagen_80x80.png');
gracias por el aporte!!
gracias por el aporte
La dislexia 😂
Es un error mucho mas recurrente de lo que deseariamos. Como he sufrido por errores asi :(
Gracias a Dios existe Typescript :D
OJO!!! Gente NO utilicen moment, es una libreria que se creo hace mucho tiempo y sirvio en su tiempo, ahora hay mejores alternativas, la misma gente de moment te recomiendan usar otras librerias mas modernas
days js y date fns son buenas alternativas
bcrypt y sharp necesitan ++Python 2.7 para funcionar++
JAJAJAJA El profe se dedica a colocar que Python es papa de node? xd me da mucha risa...
"\n" Es obvio que lo hace por trol... Todos los framework, lenguajes y tecnologias son funcionales... Uno no es mejor que el otro....
... Excepto Rust, esa vaina es del diablo
Sufriendo en PHP para conseguir una librería que me convirtiera un SVG en PNG y acá con un npm install sharp y una línea de código ya lo tengo
sharp('corona.svg').png().toFile('corona.png');
La magia de JS y node <3
Bueno es aprender todas las posibilidades que tenemos con Node
console.clear(); const bcrypt = require('bcrypt'); const password = '1234Segura!'; let promise = new Promise(function (resolve, reject) { bcrypt.hash(password, 5, function (err, hash) { if (err != null) { reject(err); } resolve(hash); }); }); promise .then((result) => { passwordHash = result; console.log(result); saveToDatabase(); }) .catch((err) => { console.log(err); }); function saveToDatabase() { console.log('password saved...'); console.log(passwordHash); }
Wow... este a sido uno de los mejores cursos que he tomado, no solo por el profesor y como transmite esa alegria de enseñar, sino tambien por las cosas utiles que aprendes y utilizas dia a dia.
Tienes toda la razón, es un magnifico profesor.
Prefiero usar promises que callbacks, son geniales :D
bcrypt .hash(password, 2048).then((hash) => { console.log("perfecto, aqui esta el hash ", hash); }) .catch((error) => { console.log("sucedio un error"); });
asi es como podria quedar lo de bcrypt pero con promesas
const bcrypt = require('bcrypt'); const password = '1234Segura!'; let passwordHash bcrypt.hash(password, 5) .then(hash => { console.log(hash) return hash }) .then(hash => { return bcrypt.compare(password, hash) }) .then(res => { console.log(res) }) .catch(err => { console.log(err) })
Mas limpio que el ejemplo de Luis Rangel Castro, se ve que revisaste la documentación
gracias compañero muy claro el codigo, fasil de leer y entender
Módulos útiles
Módulos que utilizaremos frecuentemente en nuestras aplicaciones como:
bycript : Permite encriptar un string generando un hash.
bycript.hash : Genera el hash del string, este método recibe por parámetros el string a encriptar, las veces que debe ejecutarse el script para generar un hash aleatorio y por ultimo una función que se encarga de capturar hash o el error que se presente.
bycript.compare : Permite comprar el hash con el string a encriptado y nos devuelve un true o false. bycript.compare recibe por parámetros el string a encriptado, luego el hash y por ultimo una función que captura la información o el error que se presente.
//importamos el modulo const bcrypt = require('bcrypt'); //declaramos el pass o palabra a encriptar const passworld = '1234Segura'; //bcrypt.hash no permite generar un hash bcrypt.hash(passworld, 10, function(error, hash) { console.log(hash); //bcrypt.compare nos devuelve un boleano si hash y contraseña son iguales bcrypt.compare(passworld, hash, function(err, res) { console.log(res) }); });
moment : Logramos manipular fechas de manera eficiente. moment.format : Podemos darle un formato adecuado a nuestra fecha.
//importamos el modulo const moment = require('moment'); let ahora = moment(); //establecemos el formato a usar let ahoraFormat = ahora.format('HH:mm:ss'); console.log(ahoraFormat);
sharp : Permite trabajar con imágenes
//importamos el modulo const sharp = require('sharp'); //ruta de la imagen a modificar sharp('fondo-carro.jpg') //scalamos la imagen a 500 de alto .resize(500) //otorgamos una escala de grises .grayscale() //generamos el archivo modificado .toFile('fondo-carro-small.jpg');
Usando este comando lo pude instalar en linux
npm install --save bcryptjs && npm uninstall --save bcrypt
Y en Windows con el siguiente:
npm install -g node-gyp npm install --g --production windows-build-tools Despues: npm install bcrypt
Muchas gracias, me has salvado la vida. :3
Muchas gracias uffff ya me estaba desesperando.
Cuando utilizo express utilizo npm install bcryptjs
Cuál es la diferencia?
Justo en un momento donde había perdido cierta motivación, la energía de este profesor me ha vuelto a motivar a continuar
Que ondis, vengo del futuro :v, Moment.js ha sido oficialmente deprecado por sus autores en 2020. Algunas alternativas que vale la pena mirar puede ser:
Suerte en su viaje padawans
:O Yo despues de esta clase awww cuanto poder
x2
¿Alguien me puede ayudar? Intento instalar de Sharp pero me arroja este error.
Hola! en ese caso puedes usar este comando sudo npm install -g sharp --unsafe-perm, con eso te deberia dejar instalarlo.
Muchas gracias Dariaux95!! si me funciono
Módulos Útiles
Módulo para trabajar con fechas moment.
El paquete moment se puede instalar por medio de npm de la siguiente forma:
npm i moment
Este módulo permite ampliar las opciones de trabajar con fechas en Node, un ejemplo:
const moment = require('moment') let now = moment() console.log(now.format('DD/MM/YYYY - HH:mm')) // Para validad una fecha moment('2020-04-11').isValid(); // Nos dara **true** o **false** dependiendo de si la fecha es valida o no // Para encontrar cuanto tiempo ha pasado hasta hoy moment('2018-04-11').fromNow(); // Hace 2 años // Para agregar o eliminar años, días o meses moment('2020-04-11').add(1, 'years'); // 2021-04-11 moment('2020-04-11').subtract(1, 'years'); // 2019-04-11
En este ejemplo, el módulo moment permite obtener la hora y dar el formato que necesite. Además tiene más funciones para calcular los días entre distintas fechas, y mucho más.
Módulo para trabajar con imágenes sharp
Este módulo permite gestionar imágenes. La instalación es la siguiente:
npm i sharp
Permite manipular las imágenes con muchos métodos:
const sharp = require('sharp') sharp('original.png').resize(80).toFile('resized.png')
En este caso, estamos cambiando el tamaño de la imagen original.png a un tamaño de 80px, y se crea un archivo llamado resized.png .
Más funcionalidades de Sharp
sharp
Módulo para trabajar con cifrado y contraseñas
El paquete se llama bcrypt la instalación se hace con npm de la siguiente forma:
npm i bcrypt
Este módulo permite el cifrado de las contraseñas que son guardadas en una base de datos para no almacenarlas en texto plano.
1. Encriptar la contraseña bcrypt .
Lo primero que debemos hacer es importar el módulo.
const bcrypt = require('bcrypt')
Luego, se debe tener una contraseña para poder ejecutar el método hash que existe en el módulo bcrypt .
const password = '1234Segura!' bcrypt.hash(password, 5, function (err, hash) { console.log(hash) bcrypt.compare(password, hash, (err, res) => { console.log(res) }) })
En el código anterior, se utiliza el método .hash() , el cuál tiene 3 parámetros:
password , es la contraseña que va a ser encriptada.5 , el cuál puede ser cualquier número y hace referencia a la cantidad de veces que va a ser ejecutado el algoritmo de encriptación.function , es una promesa que va a tener la información de la encriptación, tiene dos parámetros, el error y el hash , que es el resultado de la encriptación.Para poder comparar si una contraseña digitada por un usuario u obtenida e algún sitio concuerda con el hash asignado, se utiliza el método compare , el cual tiene los mismos 3 parámetros y permite recibir un boolean que dice si el hash concuerda con la pass .
wow... node.js es como el python del backend con modulos para todo!! XD
fechas ('moment'), imágenes ('sharp') y password ('bcrypt')