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