2017-04-19 43 views
2

我目前正在从承诺过渡到异步等待。它更容易推理代码。我只是有一个问题,如果使用的方式来检查undefined是好的。该代码正在nodejs中使用并检查数据库。代码就像这样。这是一个检查javascript中未定义值的好方法吗?

编辑:我知道,我应该赶上错误。我在这里很懒惰。

// 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不确定?

+2

我投票作为题外话,因为它是要求关闭这个问题[代码审查(https://codereview.stackexchange.com/help/on-topic) – Quentin

+0

真的取决于。是否有'false',''''','0' ...有效的返回值或者它们是否也是错误? –

+1

您当前的形式将正常返回以下值:'null', 'undefined', 'NaN', '空字符串( “”)',' 0', 'FALSE' – Santi

回答

1

在数据库返回的情况下,使用!var是完全正确的。找不到用户,但!var返回true。

1

JavaScript中的undefined值被视为虚假值,所以是的 - 您正在以正确的方式进行操作。如果你想检查用户对象中的其他字段,你应该检查useruser.property

相关问题