抓住Waterline / sails.js中的每个更新/创build

我试图创build一个“工作stream”表,它注册每个表上的每个事件,并附加一些额外的信息(IP,会话ID)。

我有很多模型,不想在每个模型中都写afterUpdate / afterCreate,这是很难维护的,再加上模型中没有req来存储会话id。

我真的不知道该如何开始,这就是为什么我要问Waterline是否会抛出任何事件或类似的事情?

提前致谢 !

您正在寻找生命周期callback

Sails在特定操作之前或之后自动调用的模型中暴露了一些生命周期callback。 例如,我们有时使用生命周期callback在创build或更新帐户模型之前自动encryption密码。 另一个用例是在Project的name属性更新时自动重新生成一个URL slug。

callback创build

  • beforeValidate:fn(values,cb)
  • afterValidate:fn(values,cb)
  • beforeCreate:fn(values,cb)
  • afterCreate:fn(newlyInsertedRecord,cb)

callback更新

  • beforeValidate:fn(valuesToUpdate,cb)
  • afterValidate:fn(valuesToUpdate,cb)
  • beforeUpdate:fn(valuesToUpdate,cb)
  • afterUpdate:fn(updatedRecord,cb)

callback破坏

  • beforeDestroy:fn(criteria,cb)
  • afterDestroy:fn(destroyedRecords,cb)