1.安装sequelize,mysql驱动mysql2
"sequelize": "^5.6.1",
"mysql2": "^1.6.5",
2.新增db.js连接数据库
const { Sequelize } = require('sequelize')
const { dbName, host, port, user, password } = require('../config/config1').database
const sequelize = new Sequelize(dbName, user, password, {
dialect: 'mysql',
host,
port,
logging: true,//日志输出
timezone: '+08:00',//时区同步
define:{
//create_time update_time delete_time
timestamps:true,//时间戳
paranoid:true, //软删除 必须启用时间戳
createdAt:'created_at',//创建时间表字段名称重定义
updatedAt:'updated_at',
deletedAt:'deleted_at',
underscored:true,//驼峰转下划线
freezeTableName:true, //不修改表名
scopes:{
bh:{
attributes:{
exclude:['updated_at','deleted_at','created_at']
}
}
}
}
})
sequelize.sync({
force: false//删除表并且重新创建,生产环境一定要为false
})
module.exports = {
sequelize
}
2.新增user表模型
const { sequelize } = require('../../core/db')
const { Sequelize, Model } = require('sequelize')
class User extends Model {
}
User.init({
id: {
type: Sequelize.INTEGER,
primaryKey: true,//主键
autoIncrement: true//自增
},
nickname: Sequelize.STRING,
email: {
type: Sequelize.STRING,
unique: true//唯一
},
password: {
type: Sequelize.STRING,
},
openid: {
type: Sequelize.STRING(64),
unique: true
}
}, {
sequelize,
tableName: 'user'//表名
})
module.exports = {
User
}
3.增删改查基本操作
//创建记录 如需接收返回结果必须使用await或者.then
const user = await User.create({ nickname: "Jane", email: "lssse" })
//单个查询 findOne 查询全部 findAll
const card = await Card.findOne({
where:query
})