sql >> データベース >  >> NoSQL >> MongoDB

node.jsモジュールで非同期にエクスポートを初期化しても大丈夫ですか?

    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に一般化することをお勧めします コードをよりきれいに/よりドライにするためのクラス/オブジェクト。



    1. TypeError:nullのプロパティ'subject'を読み取れません

    2. Mongodbがアドレスでの無効なアクセスでクラッシュしました-セグメンテーション違反信号11-バージョン2.6

    3. Redisによる動的ソート

    4. mongoDBで英数字の並べ替えを行う方法は?