Le maintien d'une connexion à la base de données cohérente est crucial pour le fonctionnement transparent des applications Node.js. Pour éviter d'avoir à rétablir les connexions plusieurs fois, il est essentiel de mettre en œuvre une stratégie garantissant le partage des connexions entre les différents modules.
L'approche décrite dans la requête d'origine, impliquant la création d'un objet central qui gère la base de données les connexions et leur distribution aux modules, sont erronées. Au lieu de cela, il est recommandé d'utiliser une solution basée sur un module.
Ce module agit comme un référentiel centralisé pour la gestion des connexions à la base de données. Il définit des fonctions permettant à la fois d'établir la connexion à MongoDB et de récupérer l'instance de base de données.
const MongoClient = require( 'mongodb' ).MongoClient; const url = "mongodb://localhost:27017"; var _db; module.exports = { connectToServer: function( callback ) { MongoClient.connect( url, { useNewUrlParser: true }, function( err, client ) { _db = client.db('test_db'); return callback( err ); } ); }, getDb: function() { return _db; } };
Dans le fichier d'application principal, app.js, le module mongoUtil est importé et la fonction connectToServer est invoquée pour établir la connexion à la base de données.
var mongoUtil = require( 'mongoUtil' ); mongoUtil.connectToServer( function( err, client ) { if (err) console.log(err); // start the rest of your app here } );
Dans d'autres modules ou fichiers, le module mongoUtil peut être importé pour récupérer l'instance de base de données partagée à l'aide de la fonction getDb.
var mongoUtil = require( 'mongoUtil' ); var db = mongoUtil.getDb(); db.collection( 'users' ).find();
En tirant parti de cette approche basée sur les modules, vous vous assurez que tous les modules de votre application ont accès à une seule connexion à une base de données partagée, sans avoir besoin de plusieurs connexions ni d'incohérences potentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!