ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js モジュール間でデータベース接続を効率的に共有するにはどうすればよいですか?

Node.js モジュール間でデータベース接続を効率的に共有するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-16 17:37:03914ブラウズ

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

Node.js アプリケーションおよびモジュール間でデータベース接続を共有する

Node.js アプリケーションをシームレスに操作するには、一貫したデータベース接続を維持することが重要です。接続を何度も再確立する必要を回避するには、異なるモジュール間で確実に接続を共有する戦略を実装することが不可欠です。

元のクエリで説明されているアプローチには、データベースを管理する中央オブジェクトの作成が含まれます。接続とそのモジュールへの配布に欠陥があります。代わりに、モジュールベースのソリューションを採用することをお勧めします。

mongoUtil Module

このモジュールは、データベース接続管理のための集中リポジトリとして機能します。 MongoDB への接続の確立とデータベース インスタンスの取得の両方の関数が定義されています。

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

app.js での使用法

メイン アプリケーション ファイル app.js では、mongoUtil モジュールは次のようになります。

var mongoUtil = require( 'mongoUtil' );

mongoUtil.connectToServer( function( err, client ) {
  if (err) console.log(err);
  // start the rest of your app here
} );

他のファイルのデータベースへのアクセス

他のモジュールまたはファイルでは、mongoUtil モジュールをインポートして共有ファイルを取得できます。 getDb 関数を使用してデータベース インスタンスを使用します。

var mongoUtil = require( 'mongoUtil' );
var db = mongoUtil.getDb();

db.collection( 'users' ).find();

このモジュールベースのアプローチを活用すると、アプリケーション内のすべてのモジュールが、複数の接続や潜在的な接続を必要とせずに、単一の共有データベース接続にアクセスできるようになります。不一致。

以上がNode.js モジュール間でデータベース接続を効率的に共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。