如何解决在sails.js 中使用Actions2 时如何验证body 对象?
sails.js 非常新
我知道输入对象允许 actions2 验证请求参数。但是,您如何访问/验证请求正文。例如请求体。我知道我可以从 this.req.body 访问它,但是使用 actions2 我想知道是否有一种方法可以通过输入或其他内置的东西来访问/验证它,就像查询参数一样。
下面非常简单的动作来说明这一点。
module.exports = {
friendlyName: 'Create',description: 'Create summaries.',inputs: {},exits: {},fn: async function (inputs,exits) {
// All done.
return this.res.created(this.req.body)
},}
正文将包含:
{
"Summary": [
{
"DUPLICATE_MANIFESTED": 0,"DUPLICATE_SEEN": 4,},{
"DUPLICATE_MANIFESTED": 0,"DUPLICATE_SEEN": 1,}
]
}
谢谢!
解决方法
好的。所以我已经意识到它确实有效。但我也发现 Inputs 中的标准验证对嵌套对象和数组的工作方式不同。
因此,本质上您使用的是您发送的对象中的键,因此可以立即使用“摘要”。
我提到的关于验证的部分。我可能错了,但正如您所看到的,我发现引擎盖下的风帆使用 rttc 进行类型检查,因此第一个下方的每个元素都不能具有任何属性,例如“描述”或“类型”,而只需将类型设为价值立竿见影。不过,我已经调查了任何进一步的嵌套。
我还发现在类型检查嵌套属性时没有一种简单的方法来丢失元素,因此基本上它们都是必需的,或者您可以将它们设置为“*”,我认为这基本上绕过了类型检查.我确实需要在这方面做更多的功课,因为我不是 100% 确定,但我认为这可能会帮助遇到此问题的任何人。
以下是我如何将以下内容作为答案。
module.exports = {
friendlyName: 'Create',description: 'Create summaries.',inputs: {
Summary: {
description: 'The current incoming request (req).',type: [
{
DUPLICATE_MANIFESTED: 'number',DUPLICATE_SEEN: 'number',}
]
}
},exits: {},fn: async function (inputs,exits) {
// All done.
return this.res.created(inputs.Summary)
},}
希望对我这样的新手有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。