Sequelize使用经验
1.设置北京时区
let sequelize = new Sequelize(
db.database,
db.userName,
db.password, {
host: db.host,
dialect: db.dialect,
timezone: '+08:00'
}
)
如果不设置,写入的时间会与北京时间相差8小时
2.不打印sql 将执行方法的options参数的logging属性设为false,例如:
let tablesInfo = await db.query(`
SELECT
*
FROM
information_schema.tables
`, {
type: sequelize.QueryTypes.SELECT,
logging: false
})
3.increment的bug 当设置了updatedAt字段的field:'updated_at’后,执行increment方法时,还是会使用updatedAt=‘xxxx’,导致报错。 虽然作者说了Fixed in #6810,但最新版本使用时依然报错。 解决方法可以使用sequelize.literal代替increment方法。
4.多表join时,where条件问题 A表 join B表,where条件中指定B表的user_name时,生成的SQL是A.B.user_name,这种情况在where条件的字段名两端加上$符号即可。 代码示意:
A.findOne({
include: [{
model: B
}],
where: {
'$B.user_name$' : '张三'
}
});
未完待续~
使用sequelize的朋友可以加群交流,QQ群号:610621954 或者点击链接加入群【Sequelize】:https://jq.qq.com/?_wv=1027&k=46D4UTL
2 回复
不错,关注
还行