【问题标题】:why there is no condition in the if statement when we use if(err) for mongoose query? [closed]当我们使用 if(err) 进行猫鼬查询时,为什么 if 语句中没有条件? [关闭]
【发布时间】:2020-08-30 19:14:53
【问题描述】:

我知道这可能是一个菜鸟问题,但是当我为 mongodb 处理错误时,为什么不在 if 语句中加入这样的条件?

例如

query.findOne(function (err, kitten) {
    if (err === true) {
        console.log(err);
    } else if (!err) {
        console.log("success");
    }
}

if(err)if(err===true) 是如何等价的?

【问题讨论】:

  • 这里有什么错误?
  • if(err) 不一定等同于if(err===true) - 您需要在控制台中检查
  • 这能回答你的问题吗? Understanding JavaScript Truthy and Falsy
  • 我正在使用猫鼬查询,例如 query.findOne(function (err, kitten) {
  • 因为 if (true) 与在 err 为真时说 if (err===true) 是一样的。由于 err === true 也评估为 true。 :P

标签: javascript mongodb mongoose


【解决方案1】:

如果err是一个布尔变量,并且设置为True,那么你不需要写if(err===True),因为它和写if(True)是一样的(因为 err 是真的)。 相反,如果要检查条件是否为 False,则编写 if(!err)。如果 err 为 True,则 !err= !True = False

【讨论】:

  • 这确实回答了我的问题,但我有一些我想深入研究的东西。如果 err 不是布尔值怎么办,例如当我使用猫鼬查询时。我不确定错误是哪种变量,但我不认为它只是一个布尔变量,因为当我控制台记录它时,它会显示更多。对于这种情况,我该如何理解?
  • 当您在控制台上打印时,它会显示什么?
猜你喜欢
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 2019-11-26
  • 1970-01-01
  • 2018-05-05
  • 2020-12-10
相关资源
最近更新 更多