Chuck's Academy

Express JS

Conectando Express con Bases de Datos

La gestión de datos es un aspecto central de cualquier aplicación. En este capítulo, aprenderemos a conectar Express con bases de datos, tanto SQL como NoSQL. Nos enfocaremos en cómo interactuar con bases de datos para almacenar, actualizar y recuperar datos. Además, veremos cómo usar ORMs y ODMs para facilitar estas tareas.

Conexión a Bases de Datos SQL (MySQL)

Para conectarnos a una base de datos MySQL desde Express, podemos utilizar el paquete mysql2 o sequelize como ORM (Object-Relational Mapping) para abstraer la interacción con la base de datos.

Instalación de MySQL y Sequelize

Primero, instalemos los paquetes necesarios:

bash
"Instalamos los paquetes mysql2 para conectarnos directamente a MySQL y sequelize como un ORM que nos permite manejar las bases de datos de manera más abstracta."

Configuración de Sequelize

A continuación, configuramos Sequelize para conectarnos a nuestra base de datos MySQL:

javascript
"Aquí configuramos Sequelize con el nombre de la base de datos, el nombre de usuario y la contraseña. Usamos el dialecto MySQL y luego autenticamos la conexión. Si la conexión es exitosa, se registra un mensaje en la consola."

Definiendo Modelos con Sequelize

Una vez conectados, podemos definir modelos para representar nuestras tablas en la base de datos. Por ejemplo, si tenemos una tabla de usuarios, podemos crear un modelo User:

javascript
"Definimos el modelo User con tres campos, name, email y password, todos ellos de tipo cadena. Usamos Sequelize punto STRING para definir el tipo de dato y allowNull para indicar que no pueden ser nulos. Luego sincronizamos el modelo con la base de datos usando User punto sync."

Operaciones CRUD con Sequelize

Veamos ahora cómo realizar las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) utilizando Sequelize.

  • Crear un nuevo usuario:
javascript
"Aquí estamos creando un nuevo usuario con los campos name, email y password. Si la creación es exitosa, imprimimos el usuario creado en la consola."
  • Leer usuarios:
javascript
"Usamos User punto findAll para obtener todos los usuarios de la base de datos. El resultado es un array de usuarios que se imprime en la consola."
  • Actualizar un usuario:
javascript
"Para actualizar la contraseña de un usuario, usamos User punto update y especificamos el campo a actualizar, password, junto con una condición where para identificar al usuario por su email."
  • Eliminar un usuario:
javascript
"Para eliminar un usuario, usamos User punto destroy y proporcionamos una condición where que identifica al usuario por su email."

Conexión a Bases de Datos NoSQL (MongoDB)

Ahora, veamos cómo conectar Express a una base de datos NoSQL como MongoDB. Para ello, utilizaremos mongoose, un ODM (Object Data Modeling) que facilita la interacción con MongoDB.

Instalación de Mongoose

Primero, instalemos el paquete mongoose:

bash
"Instalamos mongoose con npm install mongoose, que nos permite conectarnos y gestionar datos en MongoDB de manera más sencilla."

Configuración de Mongoose

Para conectarnos a MongoDB, configuramos mongoose de la siguiente manera:

javascript
"Aquí estamos configurando mongoose para conectarnos a una base de datos local llamada mydatabase. Usamos useNewUrlParser y useUnifiedTopology para asegurarnos de que se use el nuevo sistema de manejo de conexiones de MongoDB."

Definiendo Modelos con Mongoose

Al igual que con Sequelize, podemos definir modelos para representar los documentos en MongoDB. Por ejemplo, un modelo de usuario se definiría así:

javascript
"Definimos un esquema de usuario con los campos name, email y password. Luego creamos un modelo llamado User basado en este esquema."

Operaciones CRUD con Mongoose

Realizar operaciones CRUD con Mongoose es similar a Sequelize, pero con algunas diferencias en la sintaxis.

  • Crear un nuevo usuario:
javascript
"Creamos una instancia del modelo User con los datos del usuario y luego llamamos a save para guardarlo en la base de datos. Si se guarda con éxito, se imprime el usuario en la consola."
  • Leer usuarios:
javascript
"Usamos User punto find para obtener todos los usuarios en MongoDB. El resultado es un array de usuarios que se imprime en la consola."
  • Actualizar un usuario:
javascript
"Para actualizar la contraseña de un usuario, usamos User punto updateOne especificando el email del usuario en una condición y el nuevo valor del campo password."
  • Eliminar un usuario:
javascript
"Para eliminar un usuario en MongoDB, usamos User punto deleteOne con una condición basada en el email del usuario."

Conclusión

En este capítulo, hemos visto cómo conectar Express a bases de datos tanto SQL como NoSQL, y cómo realizar operaciones CRUD con Sequelize y Mongoose. La capacidad de interactuar con bases de datos es fundamental para cualquier aplicación backend.


Pregúntame lo que sea