como-usar-sequalize-con-nodejs

Cómo usar Sequalize con en Node.js

Sequelize es un ORM popular en la proyectos con Node.js. Simplifica significativamente la interacción con bases de datos SQL (como MySQL, PostgreSQL y SQLite).

En este articulo vamos a ver cómo leer una base de datos utilizando Sequelize y MySQL.

Cómo conectar Node.js a SQLite

Comencemos instalando Sequelize

npm install sequelize

Ahora podemos elegir diferentes bases de datos utilizando los siguientes controladores:

# instalar uno de los siguientes driver

npm install mysql2    # para mysql2 (MariaDB / MySQL)
npm install pg        # para pg (PostgreSQL)
npm install sqlite3   # para sqlite3 (SQLite)
npm install tedious   # para tedious (Microsoft SQL Server / Express SQL)
npm install oracledb  # para oracledb (Oracle Database)

Configuración de la conexión a la base de datos

Configuramos la conexión a la base de datos en nuestro archivo de configuración. Utilizaremos Sequelize para gestionar la conexión y las interacciones con la base de datos.

Aquí está un ejemplo de cómo configurar la conexión con una base de datos MariaDB / MySQL.

const Sequelize = require('sequelize');

// Configuración de la conexión a la base de datos
const sequelize = new Sequelize('nombre_basedatos', 'usuario', 'contraseña', {
  host: 'localhost',
  dialect: 'mysql',
});

Definición de un modelo

Ahora, definimos un modelo que represente una tabla en nuestra base de datos. Por ejemplo, podemos definir un modelo de Usuario con propiedades como nombre, edad y correo electrónico:

const Usuario = sequelize.define('usuario', {
  nombre: {
    type: Sequelize.STRING,
    allowNull: false,
  },
  edad: {
    type: Sequelize.INTEGER,
    allowNull: false,
  },
  correo: {
    type: Sequelize.STRING,
    allowNull: false,
    unique: true,
  },
});

Sincronizar y utilizar el modelo

Finalmente, sincronizamos el modelo con la base de datos y realizamos operaciones como crear, consultar, actualizar y eliminar registros.

(async () => {
  await sequelize.sync({ force: true }); // Sincronizar modelo con la base de datos
  
  // Crear un nuevo usuario
  const nuevoUsuario = await Usuario.create({
    nombre: 'Luis',
    edad: 25,
    correo: 'juan@example.com',
  });
  
  console.log('Usuario creado:', nuevoUsuario.toJSON());
  
  // Consultar usuarios
  const usuarios = await Usuario.findAll();
  console.log('Usuarios encontrados:', usuarios.map(u => u.toJSON()));
  
  // Actualizar usuario
  await Usuario.update({ edad: 30 }, { where: { nombre: 'Luis' } });
  
  // Eliminar usuario
  await Usuario.destroy({ where: { nombre: 'Luis' } });
})();

Operaciones CRUD

Una vez que hemos definido nuestro modelo, podemos realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en nuestra base de datos utilizando Sequelize.

Creación de datos

(async () => {
  await sequelize.sync({ force: true }); // Sincronizar modelo con la base de datos
  
  const nuevoUsuario = await Usuario.create({
    nombre: 'Luis',
    edad: 25,
    correo: 'juan@example.com',
  });
  
  console.log('Usuario creado:', nuevoUsuario.toJSON());
})();

Lectura de datos

(async () => {
  const usuarios = await Usuario.findAll();
  console.log('Usuarios encontrados:', usuarios.map(u => u.toJSON()));
})();

Actualización de datos

(async () => {
  await Usuario.update({ edad: 30 }, { where: { nombre: 'Luis' } });
})();

Eliminación de datos

(async () => {
  await Usuario.destroy({ where: { nombre: 'Luis' } });
})();

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github github-full