2017-04-19 28 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

相關問題