Manipulando tempos limites com o Node.js e o mongodb

No momento, estou testando como alguns códigos resistem ao seguinte cenário:

O aplicativo Node.js é iniciado e estabelece com sucesso uma conexão com o mongodbApós a configuração bem-sucedida de uma conexão, o servidor mongodb é interrompido e todas as solicitações subsequentes falham

Para fazer isso eu tenho o seguinte código que faz uso do driver oficial (encontrado aqui: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 o servidor mongodb não está mais em execução quando a solicitação está sendo manipulada, eu supus que nos pontos que rotulei como ## POINT 1 ## ou ## POINT 2 ##, ele retornaria um erro indicando um tempo limite; isso, no entanto, não é o caso.

Eu tentei várias configurações diferentes (incluindo uma que você pode ver aqui que explicitamente permite que o cursor atinja o tempo limite), no entanto, não consigo ativá-la de alguma forma. Em todas as configurações que eu tentei, o Node.js simplesmente continuará aguardando a operação find () para o callback e isso nunca acontecerá.

Se eu iniciar o aplicativo Node.jsantes rodando o mongodb, ele pega o erro no callback de conexão, mas se a conexão morrer depois disso, ele não parece lidar com isso de nenhuma maneira.

Existe uma configuração que está faltando ou não há nenhuma maneira de detectar conexões sendo encerradas depois de terem sido estabelecidas?

Edit: só ​​para ficar claro, a variável de nome de usuário usada no método find é realmente declarada no meu código completo, o código que eu coloquei neste post é uma versão reduzida para ilustrar a estrutura e a verificação de erros.

questionAnswers(4)

yourAnswerToTheQuestion