node.jsを学ぶには、mongoDBに保存されているRSSフィードを取得し、処理し、これらのフィードを(日付順に)作成する小さなアプリを作成しています。速達要求が2回呼び出されました
〜1000のブログアイテムで〜50個のRSSフィードのリストを解析するので、全体を解析するのにかなり時間がかかるので、すべてのフィードを取得して解析するのに十分な時間を得るには、次のように入力してください:req.connection.setTimeout(60*1000);
すべてが正常に実行されますが、要求は2回呼び出されます。 (私はwiresharkでチェックした、私はそれがここのfaviconについてだとは思わない)。
私は本当にそれを取得しません。
ここで自分自身をテストすることができます:http://mighty-springs-9162.herokuapp.com/feed/mde/20( "mde"に関する最後の20個の記事を含むrssフィードを作成する必要があります)。 https://github.com/xseignard/rss-unify
そして、我々は興味深いビットに焦点を当てた場合:
コードはここにある
私はこのように定義されたルートを持っている:
:app.get('/feed/:name/:size?', topics.getFeed);
そしてtopics.getFeed
はこのようなものです
function getFeed(req, res) {
// 1 minute timeout to get enough time for the request to be processed
req.connection.setTimeout(60*1000);
var name = req.params.name;
var callback = function(err, topic) {
// if the topic has been found
if (topic) {
// aggregate the corresponding feeds
rssAggregator.aggregate(topic, function(err, rssFeed) {
if (err) {
res.status(500).send({error: 'Error while creating feed'});
}
else {
res.send(rssFeed);
}
},
req);
}
else {
res.status(404).send({error: 'Topic not found'});
}};
// look for the topic in the db
findTopicByName(name, callback);
}
このgetFeed関数は2度呼び出されていますが、それでも気にすることはありません。
何が間違っていますか?何か案が?
最も一般的な問題は、どこかにあなたがこんにちは 'mvbl-FSTをreturn' –
を使用するのを忘れ、私はあなたが' '' return'''を忘れることで意味を取得しないということです。もっと説明できますか? –
私は上記について間違っているかもしれません。このコードでは、何も2回実行するように目立たない(favicon.icoは例外ですが、あなたはそれが問題にならないと言っています)。私が行う唯一のことは 'return findTopicByName(name、callback);'です。しかし、それが助けにならないことは確かです。 –