我去sailscast 我在用户模型中创建
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方法中更改日期值的字符串值,但不调用此方法。 我可以用手工打电话吗?
答案 0 :(得分:0)
您的beforeUpdate
方法永远不会执行,因为您有验证错误。
birthDate
应该是日期,但是sails会获得字符串并停止更新过程。
因此,您应该在模型的记录验证之前将其转换为日期(并且在更新之前尝试进行);
只需将beforeUpdate
方法重命名为beforeValidate
即可。这可能会有所帮助。
您可以找到sails执行模型生命周期方法here的顺序。