在 NodeJS 中使用 Sequelize 创建 MySQL 表
阅读更多:MySQL 教程
Sequelize 简介
Sequelize 是一个基于 Promise 的、可对不同服务器进行 ORM 的 Node.js 库,例如 Postgres、MySQL、MariaDB、SQLite 和 Microsoft SQL Server。
以下是 NodeJS Sequelize 的一些主要特点:
- 事务支持
-
关系
-
Eager 和 Lazy Loading
-
读取副本以及更多…
使用 Sequelize 连接 MySQL
-
在成功创建 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', {
// Column #1 的名称及其属性:id
user_id:{
// 整数数据类型
type:Sequelize.INTEGER,
// 自动增加值
autoIncrement:true,
// user_id 不能为空。
allowNull:false,
// 设置 user_id 为主键
primaryKey:true
},
// Column #2 的名称:name
name: { type: Sequelize.STRING, allowNull:false },
// 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}) 方法 − 如果模型不存在,将创建一个新模型;但是,如果模型已存在,则将覆盖现有模型。
// 导入数据库模型
const sequelize = require('./database')
// 导入用户模型
const User = require('./user')
// 创建在 user 中定义的所有表
sequelize.sync()
// 您可以更改 user.js 文件
// 然后运行此代码以检查它是否覆盖了现有代码。
sequelize.sync({force:true)
输出
运行上述程序后,您将获得以下输出 –
C:\Users\SequelizeDemo>> node app.js
执行(默认):CREATE TABLE IF NOT EXISTS 'users'('user_id' INTEGER NOT NULL 自动增加,'name' VARCHAR(255)NOT NULL,'email' VARCHAR(255)NOT NULL,'createdAt' DATETIME,'updatedAt' DATETIME,PRIMARY KEY('user_id'))ENGINE=InnoDB;
执行(默认):从 'users' 中显示索引
现在,您可以检查您的数据库。上述表格将已创建。