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
Libérer: 2024-11-16 17:37:03
original
931 Les gens l'ont consulté

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;
  }
};
Copier après la connexion

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
} );
Copier après la connexion

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal