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.
- После успешного подключения нам потребуются три файла:
- SequelizeDemo> app.js, который является нашим корневым файлом.
- SequelizeDemo> utils> database.js, который отвечает за соединение MySql.
- 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;