Reputation: 197
I originally had a route in node.js that stated this:
If the req.url === something or something or something or something, do this, else, do that.
The problem is that the else statement never got executed even though the if condition was not met. Only the if statement executes no matter what
I have broken down my route to bare minimum trying to figure out the problem. I simplified it to this:
app.get('/test', function(req,res) {
var category = 'stupid3';
if(category === 'stupid' || 'stupid2') {
res.end('yup');
} else {
res.end('nope');
}
});
What am I doing wrong?
Why wont the else statement execute?
Upvotes: 1
Views: 37747
Reputation: 321
the else statement is never executed because your if condition always returns true..
if (category === 'stupid' || 'stupid2') {
the second part of the condition i.e. after the ||
operator is 'stupid2
which is a truthy value
Upvotes: 1
Reputation:
You're using it incorrectly.
category === 'stupid' || category === 'stupid2'
Your version is effectively...
(category === 'stupid') || 'stupid2'
...so because a non-empty string is "truthy", the RHS will always cause the ||
to pass.
Upvotes: 11