¿Cómo garantizar que Node.js siga ejecutándose después de que se caiga la conexión de MonogDB?

Tengo un software intermedio de manejo de errores en Express que intenta detectar todos los errores entrantes:

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

Pero por alguna razón cada vez que cierromongod proceso, mi aplicación se bloquea con el siguiente seguimiento de pila:

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

He intentado usar la siguiente configuración, pero no me ayudó:

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

mongoose.connect(config.db, options);

Uno podría preguntarse "¿por qué querría que su aplicación se ejecute si esencialmente ya no funciona sin una conexión de base de datos?". No quiero que se cuelgue y se reinicie. Los módulos Supervisor y Forever parecen dejar de intentar volver a conectarse después de un cierto número de intentos, por lo que la aplicación se cuelga en un estado bloqueado.

Idealmente, cuando MongoDB se bloquea, me gustaría mostrar una página de error 500.jade a los usuarios, mientras que el servidor debería seguir intentando reconectarse a la base de datos cada 10 segundos. Una vez reconectado, reanudar todas las operaciones normales.

EDITAR: Ninguna de las soluciones publicadas a continuación me han funcionado, a excepción de los dominios.

Respuestas a la pregunta(3)

Su respuesta a la pregunta