Sequelize使用经验
发布于 8 年前 作者 hollenzhao 5007 次浏览 最后一次编辑是 7 年前 来自 分享

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 回复

不错,关注

回到顶部