Search code examples
node.jsexpressv8

When to use next() and return next() in Node.js


Scenario: Consider the following is the part of code from a node web app.

app.get('/users/:id?', function(req, res, next){
    var id = req.params.id;
    if (id) {
        // do something
    } else {
        next(); //or return next();
    }
});

Issue: I am checking which one to go with just next() or return next(). Above sample code works exactly the same for both & did not show any difference in execution.

Question: Can some one put light on this, when to use next() and when to use return next() and some important difference?


Solution

  • Some people always write return next() is to ensure that the execution stops after triggering the callback.

    If you don't do it, you risk triggering the callback a second time later, which usually has devastating results. Your code is fine as it is, but I would rewrite it as:

    app.get('/users/:id?', function(req, res, next){
        var id = req.params.id;
    
        if(!id)
            return next();
    
        // do something
    });
    

    It saves me an indentation level, and when I read the code again later, I'm sure there is no way next is called twice.