exports
に書き込むことはできません ファイルを残した後。あなたはブロックしている必要があります。ブロックされないようにするために、リソースの遅延読み込みを使用します。
var carCol;
var carEmitter = new require("events").EventEmitter;
exports.getCars = function(callback) {
// if no car collection then bind to event
if (carCol === undefined) {
carEmitter.on("cars-ready", function() {
callback(carCol);
});
} else {
// we have cars, send them back
callback(carCol);
}
}
db.collection("cars", function(err, col) {
// store cars
carCol = col;
// tell waiters that we have cars.
carEmitter.emit("cars-ready");
});
イベントエミッタを使用して、遅延読み込みをエミュレートします。 LazyLoadedCollection
に一般化することをお勧めします コードをよりきれいに/よりドライにするためのクラス/オブジェクト。