モデルに依存関係を注入するためのベスト プラクティスは何ですか? 特に、 getter が のように非同期の場合はどうなるmongodb.getCollection()
でしょうか?
ポイントは、依存関係を一度注入することです
var model = require('./model')({dep1: foo, dep2: bar});
引数として渡す必要なく、すべてのメンバー メソッドを呼び出します。また、非同期ゲッターのウォーターフォールで各メソッドを開始する必要もありません。
最終的に、すべての呼び出しをプロキシし、非同期の依存関係を渡す専用のexports
ラッパーになりました。
ただし、これにより多くのオーバーヘッドが発生し、多くの繰り返しが発生するため、一般的には好きではありません。
var Entity = require('./entity');
function findById(id, callback, collection) {
// ...
// callback(null, Entity(...));
};
module.exports = function(di) {
function getCollection(callback) {
di.database.collection('users', callback);
};
return {
findById: function(id, callback) {
getCollection(function(err, collection) {
findById(id, callback, collection);
});
},
// ... more methods, all expecting `collection`
};
};
依存関係、特に非同期ゲッターを注入するためのベスト プラクティスは何ですか?