【问题标题】:How to provide custom model validation message in Sails.js?如何在 Sails.js 中提供自定义模型验证消息?
【发布时间】:2014-01-13 02:55:28
【问题描述】:

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

Sails.js 返回的验证消息对用户不友好,所以我想为 required、minLength 等规则提供自定义验证消息......但我真的不知道如何。它不在文档中,我还检查了 Anchor.js w/c 的文档是 Sails 使用的验证器,但它也不存在。

更新:

上周没有收到回复,所以我实现了自己的解决方案,想分享它,因为它可能对其他人有用 - How I use custom validation messages in Sails.js

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

另一个很好的选择(感谢:sfb_)-https://gist.github.com/basco-johnkevin/8436644

【问题讨论】:

标签: javascript node.js validation sails.js


【解决方案1】:

由于 Sails.js 尚不支持使用自定义模型验证消息,我们可以使用以下解决方案:

1) @johnkevinmbasco's solution

2) @sfb_'s solution

3)@rifats solution

【讨论】:

【解决方案2】:

我想出了修改 badRequest 响应以覆盖全局错误:

/config/validationMessages.js

module.exports.validationMessages = {
  password: 'password and passwordConfirm do not match'
};

api/responses/badRequest.js

...
// 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;
    });
  });
}
...

【讨论】:

    【解决方案3】:

    我正在使用sails-hook-validation

    并对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);
    }
    .....
    

    【讨论】:

      猜你喜欢
      • 2019-05-21
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 2019-03-21
      • 2010-12-16
      • 1970-01-01
      相关资源
      最近更新 更多