Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是检查javascript中未定义值的好方法吗?_Javascript_Node.js - Fatal编程技术网

这是检查javascript中未定义值的好方法吗?

这是检查javascript中未定义值的好方法吗?,javascript,node.js,Javascript,Node.js,我目前正在从承诺过渡到异步等待。而且对代码进行推理更容易。我只是有一个问题,是否使用这种方法来检查未定义的是好的。该代码正在nodejs中使用,并检查数据库。代码是这样的 编辑:我知道我应该抓住错误。我只是在这里懒了 // This is a hypothetical function async function retrieveUser(userID){ let user = await databasefetchfuction(userID); if(user) return us

我目前正在从承诺过渡到异步等待。而且对代码进行推理更容易。我只是有一个问题,是否使用这种方法来检查未定义的是好的。该代码正在nodejs中使用,并检查数据库。代码是这样的

编辑:我知道我应该抓住错误。我只是在这里懒了

// This is a hypothetical function
async function retrieveUser(userID){
  let user = await databasefetchfuction(userID);
  if(user) return user;
  return;
}

controller.getUser = async function(req,res){
 let user = await retrieveUser(req.params.userID);
 if(!user){ // Is this ok?
   return res.status(404).json();
 } 
 return res.status(200).json({ user });
}

我想知道这样做是否合适,或者是否应该使用
user===undefined

使用显式检查未定义!在数据库返回的情况下,var是非常好的。没有办法找到用户,但是!var返回true。

JavaScript中的
未定义的
值被视为虚假值,因此是的-您是以正确的方式执行的。如果您想检查用户对象中的其他字段,那么您应该检查
user
user.property
如果(!user)
可以,只要您愿意接受它对于JS中的所有其他“错误”内容都是正确的


见此:

我投票将此问题作为离题题结束,因为它要求的是真正的问题。
是否为false
0
。。。有效的返回值还是应该是错误?您当前的表单将正确返回以下值:
null
未定义的
NaN
空字符串(“”
0
false
这不是真正的问题吗?是否检查我的方法是否返回了值?这些方法到底做了什么?结果将取决于此。@Quentin我不是真的要求代码审查。代码的目的是显示一个示例。这个代码是虚构的。我只想确认一下你的行为。这个解释就足够了。感谢