有没有更好的方法来避免重复的生命周期callback?

水线允许模型上的一些生命周期callback,如下所示…

  • beforeValidation / fn(values,cb)
  • beforeCreate / fn(values,cb)
  • afterCreate / fn(newInsertedRecord,cb)
  • beforeValidation / fn(valuesToUpdate,cb)
  • beforeUpdate / fn(valuesToUpdate,cb)
  • afterUpdate / fn(updatedRecord,cb)
  • beforeDestroy / fn(criteria,cb)
  • afterDestroy / fn(cb)

但是,如果我想在创build和更新之前采取行动呢?

Rails有一个beforeSave ,这非常棒。 在sails.js中有类似的东西吗?

我可以有两个callback调用一个函数,但我想确定没有更好的方法。

你可以从beforeCreate调用beforeUpdate ,反之亦然:

 beforeCreate: function(values, cb) { // Forward to the model's beforeUpdate method return User.beforeUpdate(values, cb); }, beforeUpdate: function(valuesToUpdate, cb) { ... } 

请记住,通过update调用发送的值可能与发送create的值不同, 例如,不要依赖实例的id值可用!