2016-08-11 3 views
0

私はこのコードに問題があります。何らかの理由で、タイトルにエラーが表示されます。私はこれが非同期の概念の問題だと確信しています。これをどうすれば解決できますか? nullあるほとんどの場合、あなたが(いない最後に)あなたのfind()リスト内のアイテムを持っているExpressエラー:終了後に書き込み

pokeRouter.get('/sightings/:value([a-z]+)', function (req, res) { 
var test = {}; 
pokemon.find().each(function(err, item) { 
    if (item == null) { 
     res.end(); 
    } else if ((req.params.value == item.type1) || (req.params.value == item.type2)) { 
     sightings.find({pokedex_id: item._id}).toArray(function(err, docs) { 
      if (docs == null) { 
       return null; 
      } 
      res.write(JSON.stringify(docs)); 
     }); 
    } 
}); 
}); 
+0

「ポケモン」と「目撃」はどこから来ていますか? – idbehold

答えて

2

。その時点で応答を終了します(res.end())。しかし、の後には、でないnullの項目のうちの1つ以上の項目があり、res.write()を引き起こします。nullです。これがあなたの「書き込み後の終了」エラーの原因です。回答全体を書き終えたら、res.end()に電話するようにしてください。

関連する問題