Sequelize.js 未调用sequelize beforeCreate钩子

Sequelize.js 未调用sequelize beforeCreate钩子,sequelize.js,Sequelize.js,我使用直接方法(sequelize文档中的方法3)定义我的beforeCreate钩子,如下所示: module.exports = (sequelize, datatypes)=>{ var tag = sequelize.define(...) tag.beforeCreate(tag,options=>{...}) tag.beforeBulkCreate(tags,options=>{...}) } beforeBulkCreate在我执行

我使用直接方法(sequelize文档中的方法3)定义我的beforeCreate钩子,如下所示:

module.exports = (sequelize, datatypes)=>{
    var tag = sequelize.define(...)

    tag.beforeCreate(tag,options=>{...})

    tag.beforeBulkCreate(tags,options=>{...})
}

beforeBulkCreate在我执行tag.bulkCreate时被激发,但beforeCreate在我执行tag.create时不被激发。为什么会这样?

如果要为每一行运行创建钩子,应该使用
individualHooks:true
如果要为每一行运行创建钩子,那么应该使用
individualHooks:true
如果要为每一行运行创建钩子

我觉得在定义模型时默认individualHooks为true很重要,而不是假设bulkCreate将知道传递{individualHooks:true}。第一个响应是正确的,但我认为最好控制钩子在模型定义中的使用方式,而不是让调用方负责

这就是我在模型定义中所做的

var baseBulkCreate = User.bulkCreate;
User.bulkCreate = function(instances, options) {
    options = options || {};

    // We want to make sure that when we do things in bulk we always run the individual hooks too.  It isn't clear
    // why this isn't the default.
    options.individualHooks = true;

    return baseBulkCreate.call(this, instances, options);
};

我觉得在定义我的模型时,将individualHooks默认为true很重要,而不是假设bulkCreate的所有调用方都知道传递{individualHooks:true}。第一个响应是正确的,但我认为最好控制钩子在模型定义中的使用方式,而不是让调用方负责

这就是我在模型定义中所做的

var baseBulkCreate = User.bulkCreate;
User.bulkCreate = function(instances, options) {
    options = options || {};

    // We want to make sure that when we do things in bulk we always run the individual hooks too.  It isn't clear
    // why this isn't the default.
    options.individualHooks = true;

    return baseBulkCreate.call(this, instances, options);
};

作为模型选项的一部分,是否还可以启用IndividualHook?从API的角度来看,bulkCreate的调用方知道他们必须传递该选项似乎是不直观的。是否有必要将IndividualHook作为模型选项的一部分?从API的角度来看,bulkCreate的调用方知道他们必须传递该选项似乎是不直观的。