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.

​http://stackoverflow.com/questions/16810449/when-to-use-next-and-return-next-in-node-js​