mongoose/node.jsでデータベース接続パラメータを共有する最良の方法 質問する

mongoose/node.jsでデータベース接続パラメータを共有する最良の方法 質問する

私は使用していますマングースMongo データベースを管理します。私の接続ファイルは非常にシンプルです:

var mongoose = require('mongoose')

mongoose.connection.on("open", function(){
  console.log("Connection opened to mongodb at %s", config.db.uri)
});
console.log("Connecting to %s", config.db.uri)
mongoose.connect(config.db.uri)

global.mongoose = mongoose

そしてapp.jsで

require('./database)

そして、「mongoose」変数はグローバルに利用可能です。グローバル変数は使用したくないです (少なくとも直接は)。シングルトン パターンまたはその他の方法を使用して、ノード間でデータベース接続変数を共有するより良い方法はありますか (express.js を使用しています)?

ベストアンサー1

app.js ファイルで次の操作を実行します。

var mongoose = require('mongoose');
mongoose.connect('mongodb://address_to_host:port/db_name');
modelSchema = require('./models/yourmodelname').YourModelName;
mongoose.model('YourModelName', modelSchema);
// TODO: write the mongoose.model(...) command for any other models you have.

この時点で、そのモデルにアクセスする必要があるファイルは、次の操作を実行できます。

var mongoose = require('mongoose');
YourModelName = mongoose.model('YourModelName');

そして最後に、モデル内でファイルを通常どおりに書き込んで、下部にエクスポートすることができます。

module.exports.YourModelName = YourModelName;

これが最も優れた解決策であるかどうかはわかりません (約 2 日前からモジュールのエクスポートについて考え始めたばかりです) が、確かに機能します。これが良い方法であるかどうか、誰かがコメントしてくれるかもしれません。

おすすめ記事