【发布时间】:2015-09-01 18:11:18
【问题描述】:
我正在使用sails(v0.11)
我在我的应用程序中安装了sails-hook-validation。
validationMessages: {
email: {
required: 'Email is required',
email: 'Provide valid email address',
unique: 'Email address is already taken'
},
username: {
required: 'Username is required'
}
}
并将上面的代码添加到我的模型中。
如果我发送无效的email,我会收到以下错误消息
{
"error": "E_VALIDATION",
"status": 400,
"summary": "1 attribute is invalid",
"model": "User",
"invalidAttributes": {
"email": [
{
"rule": "email",
"message": "`undefined` should be a email (instead of \"vishnu@ad\", which is a string)"
}
]
},
"Errors": {
"email": [
{
"rule": "email",
"message": "Provide valid email address"
}
]
}
}
正如您看到的错误消息,我收到了invalidAttributes 和Errors。如何删除invalidAttributes?
我应该如何在我的 Sails 应用中配置以删除 invalidAttributes?
【问题讨论】:
-
您可以将其从 responses/badRequest.js 或任何其他响应文件中的错误中删除 - 检查数据是否为 Error 实例,以及是否为
E_VALIDATION,只需将invalidAttributes设置为null或delete即可。 -
为每个请求删除
invalidAttributes可能不好。必须有一些配置才能删除它。 -
为什么要有?这就是 Waterline 告诉您数据出了什么问题的方式。即使 sails-hook-validation 确实提供了一个配置选项,它也会做与我刚才提议的完全相同的事情。