我将hapi 17.2.2与hapi-bodyparser 2.0.2一起使用,并遇到以下行为:
我有一个表单,它通过JQuery ajax POST请求将以下数据发送到我的后端(hapi服务器)。
________ ___
/_ __/ /_ ___ / | ________ ____ ____ _
/ / / __ \/ _ \ / /| | / ___/ _ \/ __ \/ __ `/
/ / / / / / __/ / ___ |/ / / __/ / / / /_/ /
/_/ /_/ /_/\___/ /_/ |_/_/ \___/_/ /_/\__,_/
Process finished with exit code 0
但是在路由处理程序中,我在有效负载对象中看到了以下内容:
{
panel:{
content:"asdf",
visible: true
}
}
body-parser插件运行之后,我仍然在body对象中看到一个布尔字符串而不是布尔值。
payload: {
'panel[about][visible]': 'true'
}
因此由于某种原因,布尔值{
panel:{
about: { visible: 'true', content: 'asgasdgfa' }
}
}
会转换为字符串true
,而永远不会转换回布尔值。
我觉得我缺少有关有效负载处理的一些简单而重要的部分,因为我肯定不是第一个遇到这种情况的人。
仅凭Joi验证值对我来说还不够。据我了解,Joi只会告诉我该值是否类似于布尔值,但它仍将是字符串,因为Joi只是验证事物,而实际上没有进行转换。我还没有尝试过,但我的假设可能完全错了。
那么,有什么好方法可以告诉hapi如果它们在有效负载中出现,则实际保留(或解析)布尔值?