egg sequelize:hooks里面的beforeBulkCreate不起作用!
发布于 5 年前 作者 oneWalker 6992 次浏览 来自 问答

What happens?

egg sequelize里面提供了一个维护时间的,就是timestamps,在不注释掉的情况下,我们能够在hooks里面挂载更改时间,从而实现时间维护。 例如这样: { hooks:{ beforeValidate:(User)=> { User.updatedAt=Date.now(); }, beforeCreate:(User)=> { User.createdAt=Date.now(); } } }

但是当我使用beforeBulkCreate()这个hooks的功能的时候不起作用了,如下 { hooks:{ beforeBulkCreate:(User)=> { User.createdAt=Date.now(); } } } 维护的时间还是timestamps格式的,而不是unix毫秒时

相关环境信息

  • 操作系统:window10
  • Node 版本:v12.10.0
  • Egg 版本:2.23.0
3 回复

beforeBulkCreate 的第一个参数 是个数组

@MUHM 大哥我需要请教个问题,sequelize按照egg官网引入后,定义model的时候也指定了autoIncrement,使用sequelize.model.sync()方法自动生成表, 但是seqelize.model.create()的时候却报错Duplicate entry ‘0’ for key ‘PRIMARY’,这是因为sequelize插入数据时主键并没有自增导致的,填充的一直都是0,请问你们是怎么解决的啊

@MUHM 嗯嗯 在github上面有人给出了解答,那如果需要维护时间挫的话,要把每个User作为数组里面的时间赋值一次

回到顶部