2015-10-12 54 views
0

我本來在此表示Node.js的路線:或者運營商在IF語句不工作Node.js加載

如果req.url ===東西或某事或某物或某事,做到這一點,否則, 去做。

問題是即使if條件未被滿足,else語句也從未得到執行。只有if語句才能執行,不管是什麼

我已經將我的路線分解爲最低限度,試圖找出問題所在。我把它簡化爲:

app.get('/test', function(req,res) { 

     var category = 'stupid3'; 

     if(category === 'stupid' || 'stupid2') { 

      res.end('yup'); 

     } else { 

      res.end('nope'); 

     } 

}); 

我在做什麼錯?

爲什麼不用else語句執行?

回答

7

您使用不正確。

category === 'stupid' || category === 'stupid2' 

你的版本是有效的...

(category === 'stupid') || 'stupid2' 

...所以,因爲一個非空的字符串是 「truthy」,在RHS總會引起的||通過。

+1

的教訓在這裏是在開始跳入node.js #embarrassed之前確保你知道JavaScript –

1

永遠不會執行else語句,因爲你如果條件始終返回true ..

if (category === 'stupid' || 'stupid2') { 

||操作後,即條件的第二部分是'stupid2這是一個truthy值