2016-03-01 37 views
0

林定義(在sequelize文檔方法3)採用直接法我beforeCreate鉤這樣的:sequelize beforeCreate鉤不叫

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

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

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

beforeBulkCreate是被解僱,當我做tag.bulkCreate但beforeCreate,不是我做的tag.create。這是爲什麼?

回答

0

創建掛鉤,我覺得默認individualHooks定義我的模型時,而不是假設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); 
};