3

次のコードでは、session.jsとuser.jsの「db」変数がdb.jsの同じオブジェクトを参照していますか、それともそのコピーです(dbサーバーへの個別の接続を確立しています)。

// db.js
var mongojs = require('mongojs');
var db = mongojs('test', ['users', 'sessions']);
module.exports.database = db;

// session.js
var db = require('../db.js').database;
......

// user.js
var db = require('../db.js').database;
......

ありがとう!

4

2 に答える 2

3

必要なモジュールがキャッシュされるため、両方が同じオブジェクトを指します。関連するNode.jsドキュメント:ドキュメントをキャッシュするモジュール

于 2012-11-12T15:07:22.203 に答える
2

を呼び出すたびrequire('../db.js')に同じオブジェクトが返されるため、この場合、database接続プールは1つだけ作成されます。

これdatabaseは実際には接続のプール(デフォルトでは5)であり、コード間で自由に共有できるため、これが必要になる可能性が高いことに注意してください。

こちらのドキュメントをご覧ください。

于 2012-11-12T15:08:35.093 に答える