Express-Anfrage wird zweimal aufgerufen

Lernen node.js ich bin momentan dabei, eine kleine app, bekommen einige rss-feeds gespeichert in mongoDB auf, Bearbeiten Sie und erstellen Sie einen einzigen feed (nach Datum sortiert) von diese.

Analysiert eine Liste von ~50 rss-feeds, mit ~1000 blog-Artikel, so es ist ziemlich lange zu analysieren, das ganze, also habe ich den folgenden req.connection.setTimeout(60*1000); erhalten Sie eine lange genug Zeit, heraus zu Holen und zu analysieren, alle feeds.

Läuft alles ganz Prima, aber die Anfrage ist zweimal genannt. (Ich habe mit wireshark, ich glaube nicht, dass es über favicon hier).

Ich wirklich nicht bekommen, es.

Test können Sie sich selbst hier : http://mighty-springs-9162.herokuapp.com/feed/mde/20 (es sollte erstellen Sie einen rss-feed mit den letzten 20 Artikeln über die "mde").

Der code ist hier: https://github.com/xseignard/rss-unify

Und wenn wir uns auf die interessanten bits :

Habe ich eine route die wie folgt definiert sind : app.get('/feed/:name/:size?', topics.getFeed);

Und die topics.getFeed ist wie folgt :

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);
}

Also nichts ausgefallenes, aber immer noch, das getFeed-Funktion zweimal aufgerufen.

Was stimmt da nicht? Irgendeine Idee?

  • Häufigste problem ist, dass irgendwo vergessen return
  • Hallo mvbl-fst, ich verstehe nicht, was du meinst, durch das vergessen return. Können Sie mehr erklären?
  • Ich könnte falsch sein über die oben beschriebenen und in diesem code steht nichts heraus, um es auszuführen zweimal (außer favicon.ico aber Sie sagte, es ist aus der Frage). Das einzige, was ich tun würde, tun return findTopicByName(name, callback);. Aber ziemlich sicher, dass es nicht helfen wird.
  • Ich habe versucht deinen Tipp, aber mit kein Glück. Ich kann wirklich nicht herausfinden, was das problem...
  • können Sie es hinzufügen, um git so kann ich ziehen und sehen, was Los ist???
  • vielen Dank für Ihre Geduld "mvbl fst", hier ist das repo: github.com/xseignard/rss-unify, die ich begangen, Ihre return Idee. Um die Dinge laufen lokal, benötigen Sie eine mongodb läuft auf localhost:27017 mit einer db namens "topicsDB', und dann können Sie gehen in den utils-Ordner und machen Sie einen node populateDB.js um einige Daten in die db. Nochmals vielen Dank für Ihre Geduld.
  • Ich werde ziehen und laufen morgen.
  • Also machte ich einige weitere Untersuchungen, und es scheint nur zufällig mit Chrom und Chrom nehme ich an), mit firefox ist es nicht Auftritt.
  • Sehen Sie, welche Anforderungen es ist damit im Netzwerk"?

Schreibe einen Kommentar