Como garantir que o Node.js continue rodando depois que a conexão do MonogDB cair?

Eu tenho um middlware de tratamento de erros no Express que tenta capturar todos os erros de entrada:

app.use(function(err, req, res, next){
  console.error(err.stack);
  res.status(500);
  res.render('500.jade');
});

Mas por alguma razão sempre que eu fechomongod processo, meu aplicativo falha com o seguinte rastreamento de pilha:

Error: failed to connect to [localhost:27017]
    at null.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:540:74)
    at EventEmitter.emit (events.js:106:17)
    at null.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
    at EventEmitter.emit (events.js:98:17)
    at Socket.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:441:14
    at process._tickCallback (node.js:415:13)

Process finished with exit code 8

Eu tentei usar a seguinte configuração, mas isso não me ajudou:

var options = {
  server:{
    auto_reconnect: true,
      poolSize: 10,
      socketOptions:{
      keepAlive: 1
    }
  },
  db: {
    numberOfRetries: 10,
    retryMiliSeconds: 1000
  }
}

mongoose.connect(config.db, options);

Alguém poderia se perguntar "por que você quer que seu aplicativo seja executado se ele não estiver mais funcionando sem uma conexão de banco de dados?". Eu não quero que ele trave e reinicie. Os módulos Supervisor e Forever parecem parar de tentar se reconectar depois de um certo número de tentativas, deixando o seu aplicativo travado em um estado travado.

Idealmente, quando o MongoDB falha, eu gostaria de exibir uma página de erro de 500.jade para os usuários, enquanto o servidor deve continuar tentando se reconectar ao banco de dados a cada 10 segundos. Uma vez reconectado, retome todas as operações normais.

EDIT: nenhuma das soluções postadas abaixo funcionaram para mim, com exceção de domínios.

questionAnswers(3)

yourAnswerToTheQuestion