如何将hapijs请求有效负载布尔字符串转换为布尔值?

时间:2018-07-31 06:47:28

标签: javascript node.js hapijs

我将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如果它们在有效负载中出现,则实际保留(或解析)布尔值?

0 个答案:

没有答案