Javascript 如何在Sails.js中提供自定义模型验证消息?

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_)由于

如何在Sails.js中提供自定义模型验证消息

Sails.js返回的验证消息对用户不友好,因此我想为规则(如required、minLength等)提供自定义验证消息。。。但我真的不知道怎么做。它不在文档中,我也检查了Anchor.js的文档,w/c是Sails使用的验证器,但它也不在那里

更新:

上周没有得到回复,所以我实现了自己的解决方案,希望与大家分享,因为它可能对其他人有用-

另一个更好的替代方法是使用下面评论中的@Rifat解决方案:)


另一个非常好的替代方案(归功于: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_的解决方案的讨论: