MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Une connexion à MongoDB est-elle automatiquement fermée sur process.exit() ?

La réponse est non . Les connexions à la base de données ne se ferment pas correctement lorsque vous quittez (ou plantez).

Pour ce faire, vous devez utiliser quelque chose de similaire à :

// Create a function to terminate your app gracefully:
function gracefulShutdown(){
    // First argument is [force], see mongoose doc.
    mongoose.connection.close(false, () => {
      console.log('MongoDb connection closed.');
    });
  });
}

// Ask node to run your function before exit:

// This will handle process.exit():
process.on('exit', gracefulShutdown);

// This will handle kill commands, such as CTRL+C:
process.on('SIGINT', gracefulShutdown);
process.on('SIGTERM', gracefulShutdown);
process.on('SIGKILL', gracefulShutdown);

// This will prevent dirty exit on code-fault crashes:
process.on('uncaughtException', gracefulShutdown);

Il existe également des packages pour gérer ce comportement, mais c'est généralement très simple et simple à mettre en œuvre.