我有一个user
模型,我想添加一些额外的验证。
我正在使用beforeCreate
挂钩来做我的检查,但我在找出之后要做的事情时遇到了一些麻烦。
beforeCreate: function(values, callback) {
UserService.additionalCheck(values, function(err, success){
if(err){
return callback(err);
}
if(success === true){
callback();
}
else{
return callback('Did not validate');
}
});
}
问题是,这会导致500
状态和Error (E_UNKNOWN) :: Encountered an unexpected error
。
我想要做的就是发送与您拥有' invalidAttribute'时相同的响应,我该如何做到这一点?
TLDR:如何进行自己的无效属性检查和响应?
答案 0 :(得分:1)
Sails文档涵盖custom validation on attributes。下面的示例来自该文档。使用自定义验证意味着您不需要使用beforeCreate挂钩。
// api/models/foo
module.exports = {
types: {
is_point: function(geoLocation) {
return geoLocation.x && geoLocation.y
},
password: function(password) {
return password === this.passwordConfirmation;
}
},
attributes: {
firstName: {
type: 'string',
required: true,
minLength: 5,
maxLength: 15
},
location: {
//note, that the base type (json) still has to be defined
type: 'json',
is_point: true
},
password: {
type: 'string',
password: true
},
passwordConfirmation: {
type: 'string'
}
}
}
如果您还喜欢自定义验证消息传递,以及像findOrCreate
类型类方法这样的一些Rails,您可以使用Sails Hook Validation包。请注意,它需要Sails 0.11.0 +。