Or operator not working in IF statement Node.js

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') {


        } else {




What am I doing wrong?

Why wont the else statement execute?



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.


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


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us Javascript

©2020 All rights reserved.