Manejo de tiempos de espera con Node.js y mongodb

Actualmente estoy probando cómo un código se enfrenta al siguiente escenario:

La aplicación Node.js se inicia y establece con éxito una conexión a mongodbDespués de que haya configurado correctamente una conexión, el servidor mongodb muere y todas las solicitudes subsiguientes fallan

Para hacer esto, tengo el siguiente código que hace uso del controlador oficial (que se encuentra aquí:https://github.com/mongodb/node-mongodb-native):

MongoClient.connect('mongodb://localhost:27017/testdb', function(err, db) {
app.get('/test', function(req, res) {
    db.collection('users', function (err, collection) {
        console.log(err);
        if (err) {
            // ## POINT 1 ##
            // Handle the error
        }
        else {
            collection.find({ 'username': username }, { timeout: true }).toArray(function(err, items) {
                console.log(err);
                if (err) {
                    // ## POINT 2 ##
                    // Handle the error
                }
                else {
                    if (items.length > 0) {
                        // Do some stuff with the document that was found
                    }
                    else {
                        // Handle not finding the document
                    }
                }
            }); 
        }
    });
});

});

Como el servidor mongodb ya no se está ejecutando cuando se está manejando la solicitud, asumí que en los puntos que he etiquetado ## POINT 1 ## o ## POINT 2 ##, devolvería un error que indicaba un tiempo fuera Sin embargo, este no es el caso.

He intentado una serie de configuraciones diferentes (incluida una que puede ver aquí que explícitamente permite que el cursor se detenga), sin embargo, parece que no puedo habilitarlo de ninguna manera. En cada configuración que he intentado, Node.js simplemente seguirá esperando la operación find () para devolver la llamada y nunca lo hace.

Si inicio la aplicación Node.jsantes de ejecutando mongodb, detecta el error en la multa de devolución de llamada de conexión, pero si la conexión se agota después de eso, no parece manejarlo de ninguna manera.

¿Hay alguna configuración que falte o no hay forma de detectar que las conexiones se terminan después de que se hayan establecido?

Edición: para que quede claro, la variable de nombre de usuario utilizada en el método de búsqueda se declara en realidad en mi código completo, el código que he puesto en esta publicación es una versión reducida para ilustrar la estructura y la comprobación de errores.

Respuestas a la pregunta(4)

Su respuesta a la pregunta