使用 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`
现在,您可以检查您的数据库。上面应该已经创建了该表。
广告