gpt4 book ai didi

javascript - 如何使用 Node 快速测试嵌套 bool 值的存在和值?

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:57 26 4
gpt4 key购买 nike

很多时候,我必须检查一个对象的深层嵌套 bool 值,看它是否存在,如果存在,它是 true 还是 false

比方说,我想检查 payload.options.save 是否设置为 false,但我不知道 documentoptions 甚至存在于 payload 对象中。

目前,我这样做:

if (payload && payload.document && payload.document.options && payload.document.options.save && payload.document.options.save === false) {
resolve(payload);
return;
}

是否有更短的检查方法?

最佳答案

肯定有一种奇特的方法可以避免 if 语句,但您无法避免检查。这些问题最好通过在您的项目中实现一种模式来解决。

正如你所说,payload是一个HTTP请求对象,我会推荐你​​使用JOI .你不应该在代码中间有这些if-checks。这些 if 语句使代码出现错误。使用 JOI 您可以为对象定义一个模式。所以对于有效载荷,如果我们定义一个模式,它会是这样的:

const schema = Joi.object().keys({
document: Joi.object().keys({
options: Joi.object().keys({
save: Joi.boolean()
})
}).required()
})

const {error, value} = Joi.validate(payload, schema);
if(error) // Handle accordingly
else {// use it carefree!}

这样,您只需检查 save 键的 true/false 值。

所以有一个文件:

  • 列出所有 HTTP 请求模式
  • 验证模式的中间件
  • 对请求对象的所有其他操作

通过执行上述步骤,您的应用程序中的所有后续代码将看起来自信且不那么呆板。

关于javascript - 如何使用 Node 快速测试嵌套 bool 值的存在和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49531131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com