我最初在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语句?
答案 0 :(得分:9)
您使用不当。
category === 'stupid' || category === 'stupid2'
您的版本是有效的......
(category === 'stupid') || 'stupid2'
...因为非空字符串是" truthy",RHS将始终导致||
通过。
答案 1 :(得分:1)
从不执行else语句,因为if条件总是返回true ..
if (category === 'stupid' || 'stupid2') {
条件的第二部分,即在||
运算符为'stupid2
之后,这是一个真值