how to handle 404 request express.js code example

Example 1: express 404

// Dopo tutte le altre route

app.get('*', function(req, res, next) {
    var err = new Error();
    err.status = 404;
    next(err);
});

app.use(function(err, req, res, next) {
    if (err.status === 404) {
        var data = {
            title: '404 Not Found',
            content: 'Oops, page not found!';
        };
        res.render('pages/404', data);
    } else {
        return next();
    }
});

Example 2: set 404 handling via express in node

app.use(function(req, res, next){
  res.status(404);

  // respond with html page
  if (req.accepts('html')) {
    res.render('404', { url: req.url });
    return;
  }

  // respond with json
  if (req.accepts('json')) {
    res.send({ error: 'Not found' });
    return;
  }

  // default to plain-text. send()
  res.type('txt').send('Not found');
});

Example 3: express 404

app.use(function(req, res, next){
  res.status(404);

  // respond with html page
  if (req.accepts('html')) {
    res.sendFile('index.html');
    return;
  }

  // respond with json
  if (req.accepts('json')) {
    res.send({
      status: 404,
      error: 'Not found'
    });
    return;
  }

  // default to plain-text. send()
  res.type('txt').send('404 - Not found');
});