私は使用していますマングース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 日前からモジュールのエクスポートについて考え始めたばかりです) が、確かに機能します。これが良い方法であるかどうか、誰かがコメントしてくれるかもしれません。