- 执行npm install sequelize --save命令
- 将sequelize链接到MySQL数据库,并配置一些数据库的参数
(1)在core目录下创建db.js文件
const Sequelize = require('sequelize')
const {dbName, user, password, host, port} = require('../config/config').database
// 第一个参数:链接数据库的数据库名
// 第二个参数: 数据库的账号
// 第三个参数: 账号密码
// 第四个参数:一个js对象(因为里面的参数非常多)
// 注意我们应该把参数写在配置文件config.js中
const sequelize = new Sequelize(dbName, user, password, {
dialect: 'mysql', // 指定数据库的类型,需要先安装mysql2
host,
port,
logging:true, //默认值为true,是否在控制台中显示具体的mysql操作
timezone: '+08:00', //一定要这么设置才能按照北京时间来记录时间相关的数据
// timestamps: false 设置为false就不会生成createdAt和updatedAt这两个字段了
// 我们最好还是设置为true
// paranoid设置为true,添加字段deletedAt
// deletedAt,updatedAt,createdAt设置默认属性的名字
// underscored设置为true,将所有的驼峰命名的字段名称转换为以下划线链接的字段名称
define: {
timestamps: true,
paranoid: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
deletedAt: 'deleted_at',
underscored: true
}
})
// force: true 当我们添加字段的时候数据库会自动删除原先的表格并更新字段,开发阶段可以设置为true
// 注意在生产环境下千万不要将其设置为true,它会把所有的记录都删除掉
// 所以我们还是设置为false比较安全,添加字段,我们还是手动删除原先的表格然后刷新加载比较好
sequelize.sync({
force: true
})
module.exports = {
sequelize
}
config.js
module.exports = {
// dev表示开发环境 prod表示生产环境
environment: 'dev',
database: {
dbName: 'island',
host: 'localhost',
port: '3306',
user: 'root',
password: ''
}
}
(2)在app文件夹下创建models文件夹存放模型文件
例如创建user.js存放用户相关的模型
const {sequelize} = require('../../core/db')
const {Sequelize, Model} = require('sequelize')
class User extends Model{
}
// Sequelize.STRING数据类型为字符串
// Sequelize.STRING(64)最小长度为64
// unique 值是唯一的
// 用户的id编号我们不用显示指定,mysql会自动添加
// primaryKey主键,当属性为不变且唯一的话,都可以作为主键,如email、openid属性
// 主键的两个条件:不能重复,不能为空
// autoIncrement自动增长id编号
User.init({
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
nickname: Sequelize.STRING,
email: Sequelize.STRING,
password: Sequelize.STRING,
openid: {
type: Sequelize.STRING(64),
unique: true
}
},{
sequelize,
tableName: 'user'
})
// 不设置tableName的话,默认生成的表格文件名字后加s并且首字母大写,例如Users