0

coデータのスクレイピングとクレンジングを行うジェネレータ関数を実行するために使用しています。ただし、ループ後にコードの特定の部分に到達することはありません。私のコードは次のようになります。

function*(){
  var url = "mongodb://" + config.host + ":" + config.port + "/" + config.db;
  var db = yield MongoClient.connect( url );
  for( var establishment in [ {"establishment_id": 16} ] ){
    var establishment_type = establishment.id;
    var response = yield getRestaurants( establishment_type );
    var restaurants = JSON.parse( response.body ).restaurants;
    // here we create our restaurants in "saveable" form
    var saveableRestaurants = [];
    for(var i = 0; i < restaurants.length; i++){
        var saveableRestaurant = restaurants[i].restaurant;
        saveableRestaurant._id = restaurants[i].restaurant.R.res_id;
        // Remove unwanted fields
        //... code removed for brevity ...
        // convert cuisine string into its appropriate id form
        var cuisines = saveableRestaurant.cuisines.split(",");
        var ids = [];
        for( var i = 0; i < cuisines.length; i++ ){
            console.log("LOOKING UP ID FOR ", cuisines[i]);
            var match = yield db.collection(CUI).findOne({"cuisine_name":cuisines[i].trim()});
            console.log("ID FOR ", cuisines[i], " IS", match.cuisine_id);
            ids.push( id );
        }
        // I NEVER REACH THIS LINE!!!!
        console.log( "ALL IDS ", ids );
    }
  }
  db.close();
}  

関数の終わりに向かってコンソールステートメントに到達することはありません

4

3 に答える 3

-1

あなたは db connection を開いていて、 db connection で操作しようとしているので、 async.each で試すことができ、各機能を完了した後、接続を閉じることができます。そこに問題があることがわかりました。

于 2016-03-07T15:31:25.087 に答える