Node.js | MySQL-создание таблицы с помощью Sequelize

Опубликовано: 1 Августа, 2021

Введение в Sequelize: Sequelize - это основанная на обещаниях ORM Node.js для Postgres, MySQL, MariaDB, SQLite и Microsoft SQL Server. Его особенностями являются надежная поддержка транзакций, отношения, активная и отложенная загрузка, репликация чтения и многое другое.

Подключитесь к базе данных MySql с помощью Sequelize:

  • Чтобы установить соединение между MySQL и Node.js с помощью Sequelize , посетите Как использовать Sequelize в Node.js.
  • После успешного подключения нам потребуются три файла:
    1. SequelizeDemo> app.js, который является нашим корневым файлом.
    2. SequelizeDemo> utils> database.js, который отвечает за соединение MySql.
    3. SequelizeDemo> models> user.js, который отвечает за определение модели.

Настройте database.js: SequelizeDemo> utils> database.js

  • Установить соединение - это способ, упомянутый в статье Как использовать Sequelize в Node.js, и теперь мы можем использовать этот экспортированный объект sequelize из SequelizeDemo> utils> database.js для определения наших моделей.

    Примечание. Убедитесь, что используемая база данных создана в вашей базе данных.

Настройте user.js:

  • Используйте файл SequelizeDemo> models> user.js, чтобы определить сопоставления между моделью и таблицей, используйте метод define.




    // 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 arrguments
    // 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
  • Чтобы узнать больше о типах данных Sequelize, посетите Datatypes.
  • В файле SequelizeDemo> models> user.js мы определили модель.

Настройте app.js:

  • Имя файла => SequelizeDemo> app.js
  • Чтобы создать модель, мы можем использовать один из следующих способов:
    • Метод sync (): этот метод создаст модель, если модель не существует, однако, если она уже существует, он не перезапишет ее.
    • sync ({force: true}) Метод: этот метод создаст модель, если модель не существует, однако, если она уже существует, он перезапишет ее.




    // 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 )
  • Синхронизация базы данных: при запуске нового проекта у вас не будет структуры базы данных, а использование Sequelize вам не понадобится. Просто укажите структуры вашей модели, а все остальное сделает библиотека.

Шаги по запуску программы:

  • Структура проекта будет выглядеть так:
  • Установите необходимые модули для этого проекта:
     npm установить mysql2
    npm установить продолжение
    
  • Запустите app.js (корневой файл), используя следующую команду:
     узел app.js

  • В базе данных MySql теперь мы можем описать модель пользователя, которую мы создали с помощью Sequelize. Используйте следующие команды
     использовать базу данных geeksforgeeks
    desc users;