使用 Sequelize 在 NodeJS 中创建 MySQL 表


Sequelize 简介

Sequelize 是一个基于 Promise 的 Node.js ORM,支持多种数据库,例如 Postgres、MySQL、MariaDB、SQLite 和 Microsoft SQL Server。

以下是 NodeJS Sequelize 的一些主要功能:

  • 事务支持

  • 关系

  • 急切加载和延迟加载

  • 读取复制等等…

使用 Sequelize 连接 MySQL

  • 我们需要使用 Sequelize 建立 MySQL 和 Node.js 之间的连接。

  • 成功连接到 sequelize 后,我们需要以下三个文件进行配置。请仔细地仅在各自的文件夹中创建以下文件。

    • SequelizeDemo > application.js

      这是我们的根文件,它将包含实际逻辑。

    • SequelizeDemo>utils>database.js

      这将包含连接到 MySQL 的所有详细信息。

    • SequelizeDemo>models>user.js

      这将包含所需的模型信息。

示例

配置 Database.js

const Sequelize = require('sequelize')
const sequelize = new Sequelize(
   'YOUR_DB_NAME', // TutorialsPoint
   'YOUR_DB_USER_NAME', // root
   'YOUR_DB_PASSWORD', //root{
      dialect: 'mysql',
      host: 'localhost'
   }
);
module.exports = sequelize

请填写所有连接到数据库的输入。

配置 User.js

使用此文件定义模型和表之间的映射。

const Sequelize = require('sequelize')
const sequelize = require('../utils/database')
const User = sequelize.define('user', {
   // Name of Column #1 and its properties defined: id
   user_id:{

      // Integer Datatype
      type:Sequelize.INTEGER,

      // Increment the value automatically
      autoIncrement:true,

      // user_id can not be null.
      allowNull:false,

      // To uniquely identify user
      primaryKey:true
   },

   // Name of Column #2: name
   name: { type: Sequelize.STRING, allowNull:false },

   // Name of Column #3: email
   email: { type: Sequelize.STRING, allowNull:false },

   // Column: Timestamps
   createdAt: Sequelize.DATE,
   updatedAt: Sequelize.DATE,
})
module.exports = User

配置 app.js

要创建模型,我们可以使用两种方法中的一种:

  • **sync() 方法** - 仅在模型存在时创建模型。如果模型存在,则不会覆盖模型。

  • **sync({force: true}) 方法** - 如果模型不存在,则会创建一个新模型;但是,如果模型存在,则会覆盖现有模型。

// Importing the database model
const sequelize = require('./database')

// Importing the user model
const User = require('./user')

// Creating all the tables defined in user
sequelize.sync()

// You can change the user.js file
// And run this code to check if it overwrites the existing code.
sequelize.sync({force:true)

输出

运行上述程序后,您将获得以下输出:

C:\Users\SequelizeDemo>> node app.js
Executing (default): CREATE TABLE IF NOT EXISTS `users` (`user_id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `createdAt` DATETIME, `updatedAt` DATETIME, PRIMARY KEY (`user_id`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `users`

现在,您可以检查您的数据库。上面应该已经创建了该表。

更新于:2021年4月27日

2K+ 次浏览

启动你的 职业生涯

完成课程获得认证

开始学习
广告