Sails js提供
lifecycle callbacks
对于您可以使用的型号。它们允许您在创建、更新新模型时或在其他时间执行自定义代码。我认为您可以通过向
Customer
模型在里面
Customer.js
:
module.exports = {
attributes: {
firstName: { type: 'string' },
lastName: { type: 'string' }
},
// this will create a new CustomerHistory for each Customer created
afterCreate: function(customer, cb) {
CustomerHistory.create({
customer: customer.id,
firstName: customer.firstName,
lastName: customer.lastName,
modifiedAt: new Date()
}).exec(function(err, history) {
if (err) { return cb(err); }
cb();
});
},
// update some fields in CustomerHistory after Customer is updated
afterUpdate: function(customer, cb) {
CustomerHistory.update({customer: customer.id}, {
firstName: customer.firstName,
lastName: customer.lastName,
modifiedAt: new Date()
}).exec(function(err, history) {
if (err) { return cb(err); }
cb();
});
}
};
这可能不是
准确的
您想要的流(例如,可能您有时首先创建历史记录,有时不在更新时修改历史记录,等等),但我认为使用可用回调列表应该能够完成您想要的。