Javascript 如何检查节点js中的变量是否为空或未定义

Javascript 如何检查节点js中的变量是否为空或未定义,javascript,node.js,undefined,Javascript,Node.js,Undefined,我想检查我的数据是否为空或未定义,但我的if block execute即使我的数据不是空的 代码是: router.post('/addNewGrade',function(req , res){ var errorMsg = []; console.log(req.body.gradeName) if(req.body.gradeName == '' || req.body.gradeName === undefined){ errorMsg.p

我想检查我的数据是否为空或未定义,但我的if block execute即使我的数据不是空的

代码是:

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;
    }

});

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

您可以这样做

if(typeof variable === 'undefined'){
//Variable isn't defined
}

你可以这样做

if(typeof variable === 'undefined'){
//Variable isn't defined
}
它正在工作

if(req.body.gradeDescription == '' || req.body.gradeDescription === undefined)
它正在工作

if(req.body.gradeDescription == '' || req.body.gradeDescription === undefined)

因为未定义的变量是“falsey”,所以您可以简单地执行以下操作

if (body.req.gradeName) {
  // do normal stuff
} else {
  // do error stuff
}
或者如果你不需要做任何事情,如果它被定义了,那么你可以做

if (!(body.req.gradeName)) {
 // do error stuff 
}

因为未定义的变量是“falsey”,所以您可以简单地执行以下操作

if (body.req.gradeName) {
  // do normal stuff
} else {
  // do error stuff
}
或者如果你不需要做任何事情,如果它被定义了,那么你可以做

if (!(body.req.gradeName)) {
 // do error stuff 
}

您可以检查errorMsg.length>0是否显示错误?请记录
req.body.gradeName
等的值以确认其值。“空白”是什么意思?您可以检查errorMsg.length>0是否显示错误?请记录
req.body.gradeName
等的值以确认其值。“空白”是什么意思是什么意思?这似乎与你的发帖完全相同…这似乎与你的发帖完全相同…当然,但这如何解释OP报告的行为?抱歉!我错过了。我同意你的观点,torazaburo,我想看看gradeName的console.log值是多少。小心点,如果body.req.gradeName为false(“false”或false),你没有遇到错误,false也可以是一个值。当然,但这如何解释OP报告的行为?抱歉!我错过了。我同意你的观点,torazaburo,我想看看gradeName的console.log值是什么。小心点,如果body.req.gradeName为false(“false”或false),你没有遇到错误,false也可以是一个值。