Encriptar contraseñas con Node

En este post de programación con JavaScript del lado del servidor en el entorno de Node te mostraré cómo asegurar las contraseñas de los usuarios; esto es, encriptarlas.

De hecho me parece que el término correcto es hashear, pues encriptar es convertir algo plano a encriptado y luego poder hacer lo contrario; en cambio hashear es convertir algo plano a encriptado, pero ya no poder obtener el valor original a partir del encriptado.

Como sea, te mostraré cómo asegurar, encriptar o cifrar las contraseñas. Vamos a usar el algoritmo bcrypt pues es perfecto para hashear contraseñas en Node.

(más…)

Por parzibyte, hace

Relaciones SQL con Sequelize y Node

En este post te mostraré cómo hacer una relación o asociación entre tablas con el ORM Sequelize para hacer la relación a nivel base de datos y también para traer los datos usando la asociación. Es decir, lo que tiene que ver con foreign key, inner join, left join, etcétera.

Te mostraré cómo insertar datos y solo especificar la clave foránea, contrario a lo que se muestra en la documentación en donde se insertan ambos modelos a la vez.

La razón es porque, por ejemplo, si un trabajador pertenece una oficina, solo importa guardar el id de oficina en caso de que esta ya se haya creado antes, y no se requiere guardar una oficina por cada trabajador.

(más…)

Pequeño e-commerce en Angular, Node y MySQL (tienda online)

Hoy vengo a presentar un software de comercio electrónico, tienda online o e-commerce escrito en Angular, con los estilos de Angular Material, y con una API escrita con JavaScript del lado del servidor usando Node con Express. Para la base de datos se ha usado MySQL.

El software es open source; puede ser descargado y modificado por cualquier persona. Entre sus características encontramos:

  • Gestión de productos
  • Fotos de productos (guardadas en el disco duro)
  • Carrito de compras por cada usuario
  • Registro de venta con dirección de envío
  • Vista de tienda
  • Detalle de producto

Quiero aclarar que no es un software listo para producción, y más bien es un proyecto escolar que puede servir ya sea como base para un proyecto completo de un e-commerce o para otro proyecto escolar.

Veamos ahora cómo es que está programado, en dónde se puede descargar. etcétera.

(más…)

Sesiones en Node con express.js

En este post te mostraré un ejemplo sencillo y claro de cómo manejar la sesión o persistencia de sesión en Node.js usando el framework express.js

Vamos a usar el paquete express-session; y de este modo podremos acceder a los datos de sesión de la petición.

Gracias a la sesión podemos hacer varias cosas. Por ejemplo, restringir el acceso solo a usuarios logueados o llevar algo como un carrito de compras.

(más…)

CORS con Node y Express

CORS es necesario para compartir recursos en distintos dominios. Hoy vamos a ver cómo habilitar CORS con Node.js al usar express.

Sé que CORS no es una cosa “que se habilite” pero encuentro facilidad al decirlo de este modo. De hecho lo que se hace es responder con un encabezado indicando cuáles dominios se permiten para compartir recursos.

Bien, veamos cómo configurar CORS con Node.

(más…)

Node: recargar archivo al cambiar contenido

Al programar en Node.js ejecutamos archivos de JavaScript con: node archivo.js. Si usamos un paquete para levantar un servidor (por ejemplo express) entonces vamos a tener que estar reiniciando el servidor cada que hagamos cambios.

Afortunadamente existe una herramienta que permite vigilar los archivos de Node y recargarlos cuando se detecta un cambio; de este modo te evitas reiniciar el servidor en cada cambio.

Vamos a usar nodemon.

(más…)

Calificación de tareas

App web de Go, Vue y PostgreSQL en Android con Termux

Este artículo es una demostración sobre cómo poder montar una aplicación web que usa VueJS del lado del cliente (con la vue cli), Go/Golang del lado del servidor y PostgreSQL como base de datos.

Vamos a montar el proyecto web en un teléfono móvil con Android, usando la app Termux. Todo estará ejecutándose en Android, ya que se usará para programar.

Es decir, tendremos a node vigilando los archivos js, a go compilando en el lado del servidor y a PostgreSQL almacenando los datos.

¡Vamos allá!

(más…)

URL del proyecto de Heroku

Publicar app de Node.js en Heroku

En este artículo vas a aprender cómo subir tu aplicación web de Node.js en Heroku, sin importar el framework que uses (por ejemplo, express) de manera fácil, rápida y gratuita.

Recuerda que para publicar tu app de Node en Heroku debes tener una cuenta de Heroku (no importa si es gratuita) e instalar la CLI de Heroku.

También debes contar con Git, si no lo tienes, mira cómo comenzar con GitHub desktop.

(más…)

Reemplazar ocurrencias en cadena de JavaScript

Resumen: mostrar cómo hacer un replace y un replaceAll para remplazar caracteres en una string de JavaScript, ya sea solo la primera aparición o remplazar todas las apariciones; usando el método replace y expresiones regulares.

Es importante mencionar que el método replace devuelve una nueva cadena con los caracteres o letras remplazados; es decir, no modifica a la cadena internamente.

(más…)