Javascript 关联模型sailsJs的验证
我正在尝试在sailsjs v0.11.0上构建一个RESTAPI,我正在寻找一种验证所有POST请求的方法。验证适用于简单模型 简单模型示例: category.js 验证无效的关联一对多模型示例: Chapter.js Upload.js 编辑: 我让它与下面更新的Chapter.js模型一起工作,但是如果关联的模型验证失败,sails服务器将以500状态和错误json响应,如下所示,虽然这不是错误,但它应该发送400状态 更新Chapter.js:Javascript 关联模型sailsJs的验证,javascript,validation,sails.js,Javascript,Validation,Sails.js,我正在尝试在sailsjs v0.11.0上构建一个RESTAPI,我正在寻找一种验证所有POST请求的方法。验证适用于简单模型 简单模型示例: category.js 验证无效的关联一对多模型示例: Chapter.js Upload.js 编辑: 我让它与下面更新的Chapter.js模型一起工作,但是如果关联的模型验证失败,sails服务器将以500状态和错误json响应,如下所示,虽然这不是错误,但它应该发送400状态 更新Chapter.js: module.exports = {
module.exports = {
attributes: {
name: {
type: 'string',
required: true
},
categoryId: {
type: 'integer',
required: true
},
pages: {
type: 'string',
required: true
},
owner: {
model: 'Upload'
}
}
};
状态为500的错误:
{
"error": "E_UNKNOWN",
"status": 500,
"summary": "Encountered an unexpected error",
"raw": [
{
"type": "insert",
"collection": "chapter",
"values": {
"name": "chapeterOne",
"pages": "2,3,4,5",
"owner": 12
},
"err": {
"error": "E_VALIDATION",
"status": 400,
"summary": "1 attribute is invalid",
"model": "Chapter",
"invalidAttributes": {
"categoryId": [
{
"rule": "integer",
"message": "`undefined` should be a integer (instead of \"null\", which is a object)"
},
{
"rule": "required",
"message": "\"required\" validation rule failed for input: null"
}
]
}
}
}
]
}
有没有办法使错误消息更合理?这不起作用不是错误。给我们输入、预期输出和实际输出。@TravisWebb,你能帮我弄一下500状态码吗?你现在说的是另一回事。起初你说这与页面有关,但是你的分类ID验证失败了。其次:这不起作用,Sails接受了这篇文章。如果你发送了一个POST请求,sails将接受它,即使它完全是垃圾。验证器是在服务器上运行的,你需要在服务器上处理错误,然后通知客户机。如果你认为有错误,我会将其归档到waterline存储库中。
module.exports = {
attributes: {
draftId: 'integer',
chapters: {
collection: 'Chapter',
via: 'owner'
}
}
};
module.exports = {
attributes: {
name: {
type: 'string',
required: true
},
categoryId: {
type: 'integer',
required: true
},
pages: {
type: 'string',
required: true
},
owner: {
model: 'Upload'
}
}
};
{
"error": "E_UNKNOWN",
"status": 500,
"summary": "Encountered an unexpected error",
"raw": [
{
"type": "insert",
"collection": "chapter",
"values": {
"name": "chapeterOne",
"pages": "2,3,4,5",
"owner": 12
},
"err": {
"error": "E_VALIDATION",
"status": 400,
"summary": "1 attribute is invalid",
"model": "Chapter",
"invalidAttributes": {
"categoryId": [
{
"rule": "integer",
"message": "`undefined` should be a integer (instead of \"null\", which is a object)"
},
{
"rule": "required",
"message": "\"required\" validation rule failed for input: null"
}
]
}
}
}
]
}