生命周期回调是在特定模型方法之前或之后调用的函数。例如,您可能使用生命周期回调在创建或更新 User
记录之前自动计算 fullName
属性的值。
Sails 默认情况下公开了一些生命周期回调
.create()
上的生命周期回调afterCreate
生命周期回调将仅在将 fetch
元标志设置为 true
的查询上运行。有关使用 meta
标志的更多信息,请参见 Waterline 查询。
beforeCreate
也会在调用.createEach()
时运行批量插入数据。但是,afterCreate
不会。
.update()
上的生命周期回调afterUpdate
生命周期回调将仅在具有 fetch
元标志设置为 true
的 .update()
查询上运行。有关使用 meta
标志的更多信息,请参见 Waterline 查询。
.destroy()
上的生命周期回调afterDestroy
生命周期回调将仅在具有 fetch
元标志设置为 true
的 .destroy()
查询上运行。有关使用 meta
标志的更多信息,请参见 Waterline 查询。
如果您想在保存到数据库之前对密码进行哈希处理,则可以使用 beforeCreate
生命周期回调。
// User.js
module.exports = {
attributes: {
username: {
type: 'string',
required: true
},
password: {
type: 'string',
minLength: 6,
required: true
}
},
beforeCreate: function (valuesToSet, proceed) {
// Hash password
sails.helpers.passwords.hashPassword(valuesToSet.password).exec((err, hashedPassword)=>{
if (err) { return proceed(err); }
valuesToSet.password = hashedPassword;
return proceed();
});//_∏_
}
};