什么时候在 Sails 模型中调用 beforeUpdate 方法?
When call beforeUpdate method in Sails models?
我乘帆船去
我在用户模型中创建
module.exports = {
attributes: {
login: {
type: 'string',
},
password: {
type: 'string',
},
birthDate: {
type: 'date',
}
},
beforeCreate: function(values, next) {
//someCode();
},
beforeUpdate: function(values, next) {
console.log("i\'m here!");
if (values.birthDate && _.isNaN(Date.parse(values.birthDate))) {
console.log(values.birdDate);
return next({err: ["Wrong date!"]});
}
values.birthDate = Date.parse(values.birthDate);
next();
}
};
我想在 beforeUpdate 方法中更改日期值的字符串值,但未调用此方法。
也许我必须手动调用它?
您的 beforeUpdate
方法永远不会执行,因为您有验证错误。
birthDate
应该是日期,但 sails 获取字符串并停止更新过程。
因此,您应该在验证模型记录之前将其转换为最新版本(并且您尝试在更新之前这样做);
只需将您的 beforeUpdate
方法重命名为 beforeValidate
。这可能会有所帮助。
您可以找到 sails 执行模型生命周期方法的顺序 here。
我乘帆船去 我在用户模型中创建
module.exports = {
attributes: {
login: {
type: 'string',
},
password: {
type: 'string',
},
birthDate: {
type: 'date',
}
},
beforeCreate: function(values, next) {
//someCode();
},
beforeUpdate: function(values, next) {
console.log("i\'m here!");
if (values.birthDate && _.isNaN(Date.parse(values.birthDate))) {
console.log(values.birdDate);
return next({err: ["Wrong date!"]});
}
values.birthDate = Date.parse(values.birthDate);
next();
}
};
我想在 beforeUpdate 方法中更改日期值的字符串值,但未调用此方法。 也许我必须手动调用它?
您的 beforeUpdate
方法永远不会执行,因为您有验证错误。
birthDate
应该是日期,但 sails 获取字符串并停止更新过程。
因此,您应该在验证模型记录之前将其转换为最新版本(并且您尝试在更新之前这样做);
只需将您的 beforeUpdate
方法重命名为 beforeValidate
。这可能会有所帮助。
您可以找到 sails 执行模型生命周期方法的顺序 here。