Introducción a Sequelize: Sequelize es un ORM de Node.js basado en promesas para Postgres, MySQL, MariaDB, SQLite y Microsoft SQL Server. Sus características son un sólido soporte de transacciones, relaciones, carga ansiosa y diferida, replicación de lectura y muchas más.
Conéctese a la base de datos MySql usando Sequelize:
- Para establecer una conexión entre MySQL y Node.js usando Sequelize , visite Cómo usar Sequelize en Node.js.
- Después de conectarnos con éxito, habríamos requerido tres archivos:
- SequelizeDemo>app.js , que es nuestro archivo raíz.
- SequelizeDemo>utils>database.js que es responsable de la conexión MySql.
- SequelizeDemo>models>user.js que se encarga de definir el modelo.
Configurar base de datos.js: SequelizeDemo>utils>database.js
- Establecer conexión es la forma mencionada en el artículo Cómo usar Sequelize en Node.js y ahora, podemos usar ese objeto de secuenciación exportado desde SequelizeDemo>utils>database.js para definir nuestros modelos.
Nota: asegúrese de que la base de datos que está utilizando esté creada en su base de datos.
Configurar usuario.js:
- Use el archivo SequelizeDemo>models>user.js para definir asignaciones entre un modelo y una tabla, use el método de definición.
Javascript
// Include Sequelize module. const Sequelize = require('sequelize') // Import sequelize object, // Database connection pool managed by Sequelize. const sequelize = require('../utils/database') // Define method takes two arguments // 1st - name of table // 2nd - columns inside the table const User = sequelize.define('user', { // Column-1, user_id is an object with // properties like type, keys, // validation of column. user_id:{ // Sequelize module has INTEGER Data_Type. type:Sequelize.INTEGER, // To increment user_id automatically. autoIncrement:true, // user_id can not be null. allowNull:false, // For uniquely identify user. primaryKey:true }, // Column-2, name name: { type: Sequelize.STRING, allowNull:false }, // Column-3, email email: { type: Sequelize.STRING, allowNull:false }, // Column-4, default values for // dates => current time myDate: { type: Sequelize.DATE, defaultValue: Sequelize.NOW }, // Timestamps createdAt: Sequelize.DATE, updatedAt: Sequelize.DATE, }) // Exporting User, using this constant // we can perform CRUD operations on // 'user' table. module.exports = User
- Para obtener más información sobre los tipos de datos Sequelize, visite Tipos de datos .
- En el archivo SequelizeDemo>models>user.js , hemos definido el modelo.
Configurar app.js:
- Nombre de archivo => SequelizeDemo>app.js
- Para crear el modelo, podemos usar una de las siguientes formas:
- Método sync(): este método creará un modelo si el modelo no existe; sin embargo, si ya existe, no lo sobrescribirá.
- Método sync({force:true}): este método creará un modelo si el modelo no existe; sin embargo, si ya existe, lo sobrescribirá.
Javascript
// Import the sequelize object on which // we have defined model. const sequelize = require('./utils/database') // Import the user model we have defined const User = require('./models/user) // Create all the table defined using // sequelize in Database // Sync all models that are not // already in the database sequelize.sync() // Force sync all models // It will drop the table first // and re-create it afterwards sequelize.sync({force:true})
- Sincronización de base de datos: al iniciar un nuevo proyecto, no tendrá una estructura de base de datos y al usar Sequelize no necesitará hacerlo. Simplemente especifique las estructuras de su modelo y deje que la biblioteca haga el resto.
Pasos para ejecutar el programa:
- La estructura del proyecto se verá así:
- Instale los módulos necesarios para este proyecto:
npm install mysql2 npm install sequelize
- Ejecute app.js (archivo raíz) usando el siguiente comando:
node app.js
- En la base de datos MySql, ahora podemos describir el modelo de usuario que hemos creado usando Sequelize. Usa los siguientes comandos
use database geeksforgeeks desc users;
Publicación traducida automáticamente
Artículo escrito por kartikmukati y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA