Maison >interface Web >js tutoriel >Comment puis-je partager efficacement les connexions de base de données entre les modules Node.js ?

Comment puis-je partager efficacement les connexions de base de données entre les modules Node.js ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 17:37:03936parcourir

How Can I Efficiently Share Database Connections Across Node.js Modules?

Partage des connexions à la base de données entre les applications et modules Node.js

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.

Module mongoUtil

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;
  }
};

Utilisation dans app.js

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
} );

Accès à la base de données dans un autre Fichiers

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn