我有一个来自请求的参数,该参数为false,但是不会被检测为false。我的代码如下所示:
router.post('/leave', (req, res) => {
const myBooleanValue = req.body.myBooleanValue
console.log(myBooleanValue) // This prints out 0
if (!myBooleanValue) {
// This bit never gets called
}
})
如您所见,
myBooleanValue
是0
,表示false。但是,永远不会调用if子句的内部代码,因为它不会将其检测为错误。我也尝试过if (myBooleanValue === 0) {}
和if (myBooleanValue === false) {}
。但这是行不通的。请帮助? 最佳答案
首先,请确保其不会以文字'0'
的形式返回。如果将其作为文字返回,则可以通过执行以下操作将其转换为int
const myBooleanValue = parseInt(req.body.myBooleanValue);
if (myBooleanValue === 0) {
// This bit never gets called
}