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

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

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

更新:

上周没有得到答复,所以我实现了自己的解决scheme,想分享它,因为它可能对其他人有用 – 我如何在Sails.js中使用自定义validation消息

另一个更好的方法是使用下面的注释中find的@Rifat的解决scheme:)

另一个很好的select(学分:sfb_) – https://gist.github.com/basco-johnkevin/8436644

由于Sails.js尚不支持使用自定义模型validation消息,因此我们可以使用以下解决scheme:

1) @ johnkevinmbasco的解决scheme

2) @ sfb_的解决scheme

3) @rifats解决scheme

我想出了修改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; }); }); } ... 

我正在使用sails-hook-validation

并在响应/ 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); } .....