入门
安装
npm i sequelize mysql2 -S
连接到数据库
const { Sequelize } = require('sequelize')
const sequelize = new Sequelize('fast_shop', 'root', 'admin888', {
dialect: 'mysql',
host: '127.0.0.1',
port: '3306',
timezone: "+08:00",
define: {
freezeTableName: true, // 关闭复数表名
paranoid: true, // 生成 deleted_at 软删字段
underscored: true, // 驼峰转下划线
createdAt: 'created_at', // 自定义创建时间字段
updatedAt: 'updated_at',
deletedAt: 'deleted_at'
}
})
// 测试连接
// sequelize.authenticate()
// .then(r => {
// console.log(`数据库连接成功`);
// })
// .catch(err => {
// console.log(`数据库连接失败 ${err}`);
// })
// 同步数据库
sequelize.sync()
.then(r => {
console.log('数据库同步成功');
})
.catch(err => {
console.log(`数据库同步失败!${err}`);
})
module.exports = sequelize
定义模型
const { Sequelize, Model, DataTypes } = require('sequelize')
const sequelize = require('./../../core/db')
class User extends Model {}
User.init({
username: {
type: DataTypes.STRING(30),
allowNull: false,
comment: '用户名'
},
password: {
type: DataTypes.STRING,
allowNull: false,
comment: '密码',
// 当 password 字段被重新赋值时执行
set(val) {
const salt = genSaltSync(10)
this.setDataValue('password', hashSync(val, salt))
}
},
email: {
type: DataTypes.STRING,
allowNull: false,
comment: "用户邮箱"
},
openId: {
type: DataTypes.STRING,
defaultValue: '',
comment: "小程序id"
}
}, {
sequelize
})
module.exports = User