我有一个来自请求的参数,该参数为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
    }
})


如您所见,myBooleanValue0,表示false。但是,永远不会调用if子句的内部代码,因为它不会将其检测为错误。我也尝试过if (myBooleanValue === 0) {}if (myBooleanValue === false) {}。但这是行不通的。请帮助?

最佳答案

首先,请确保其不会以文字'0'的形式返回。如果将其作为文字返回,则可以通过执行以下操作将其转换为int

const myBooleanValue = parseInt(req.body.myBooleanValue);

if (myBooleanValue === 0) {
        // This bit never gets called
}

09-18 12:28