如何在节点js中检查变量是空白还是未定义

Ash*_*Jha -2 javascript undefined node.js

我想检查我的数据是空白还是未定义但我的if块执行甚至我的数据都不是空白的...

代码是:

router.post('/addNewGrade',function(req , res){ 
    var errorMsg = [];  
    console.log(req.body.gradeName)
    if(req.body.gradeName == '' || req.body.gradeName === undefined){
        errorMsg.push("please enter grade name");
    }
    if(req.body.gradeDescription == '' || req.body.gradeDescription === undefined){
        errorMsg.push("please enter description about your grade");
    }
    if(errorMsg !=''){
        res.send({errorMessage :errorMsg}); 
        return;
    }

});
Run Code Online (Sandbox Code Playgroud)

检查变量的最佳方法是什么是未定义的

小智 13

因为未定义的变量是"假的",所以你可以这么做

if (body.req.gradeName) {
  // do normal stuff
} else {
  // do error stuff
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您定义了不需要做任何事情,那么您可以这样做

if (!(body.req.gradeName)) {
 // do error stuff 
}
Run Code Online (Sandbox Code Playgroud)

  • 小心这一点,如果 body.req.gradeName 为 false(“false”或 false),则您不会处于错误情况, false 也可以是一个值。 (4认同)
  • 这将转到错误分支以获得几个“正常”值 (2认同)

Tew*_*dyn 6

你可以这样做

if(typeof variable === 'undefined'){
//Variable isn't defined
}
Run Code Online (Sandbox Code Playgroud)