Javascript 如何在Sails.js中提供自定义模型验证消息?
如何在Sails.js中提供自定义模型验证消息 Sails.js返回的验证消息对用户不友好,因此我想为规则(如required、minLength等)提供自定义验证消息。。。但我真的不知道怎么做。它不在文档中,我也检查了Anchor.js的文档,w/c是Sails使用的验证器,但它也不在那里 更新: 上周没有得到回复,所以我实现了自己的解决方案,希望与大家分享,因为它可能对其他人有用- 另一个更好的替代方法是使用下面评论中的@Rifat解决方案:)Javascript 如何在Sails.js中提供自定义模型验证消息?,javascript,node.js,validation,sails.js,Javascript,Node.js,Validation,Sails.js,如何在Sails.js中提供自定义模型验证消息 Sails.js返回的验证消息对用户不友好,因此我想为规则(如required、minLength等)提供自定义验证消息。。。但我真的不知道怎么做。它不在文档中,我也检查了Anchor.js的文档,w/c是Sails使用的验证器,但它也不在那里 更新: 上周没有得到回复,所以我实现了自己的解决方案,希望与大家分享,因为它可能对其他人有用- 另一个更好的替代方法是使用下面评论中的@Rifat解决方案:) 另一个非常好的替代方案(归功于:sfb_)由于
另一个非常好的替代方案(归功于:sfb_)由于Sails.js尚不支持使用自定义模型验证消息,我们可以使用以下解决方案: (一) (二)
3) 我提出修改badRequest响应以全局覆盖错误:
/config/validationMessages.js
module.exports.validationMessages = {
password: 'password and passwordConfirm do not match'
};
...
// Convert validation messages
if(data && data.code !== 'E_VALIDATION') {
_.forEach(data.invalidAttributes, function(errs, fld) {
data.invalidAttributes[fld] = errs.map(function(err) {
if(sails.config.validationMessages[err.rule]) {
err.message = sails.config.validationMessages[err.rule];
}
return err;
});
});
}
...
api/responses/badRequest.js
module.exports.validationMessages = {
password: 'password and passwordConfirm do not match'
};
...
// Convert validation messages
if(data && data.code !== 'E_VALIDATION') {
_.forEach(data.invalidAttributes, function(errs, fld) {
data.invalidAttributes[fld] = errs.map(function(err) {
if(sails.config.validationMessages[err.rule]) {
err.message = sails.config.validationMessages[err.rule];
}
return err;
});
});
}
...
我正在使用
并在responses/badRequest.js中做了一些改进
.....
// If the user-agent wants JSON, always respond with JSON
if (req.wantsJSON) {
if (data.code == 'E_VALIDATION' && data.Errors) {
return res.jsonx(data.Errors);
}
return res.jsonx(data);
}
.....
你能将你的问题标记为已回答,让世界其他人都能看到吗?@ErickRuizdeChavez-Done:)@JohnKevinM.Basco真棒!泰!关于@sfb_的解决方案的讨论: