Async ruft das Muster zur API in Node.js auf

8

Baue mein erstes "seriöses" Node.js-Projekt (mit Express).

Ich muss mehrere Aufrufe an mehrere REST-APIs verwenden, alle Ergebnisse sammeln, sie massieren und einen vollständigen JSON an den Client zurückgeben (HTML5 + AJAX).

  1. Rufen Sie API A
  2. auf
  3. Rufen Sie API B
  4. auf
  5. Rufen Sie API A erneut auf (mit Ergebnissen von B)
  6. Verarbeitet die Ergebnisse der 3 Aufrufe in ein JSON
  7. response.send (Ergebnis)

Ich bin sicher / hoffe, dass es ein einfaches Muster, eine Lösung oder ein Modul gibt, für das ich einfach nicht richtig googlen konnte :) Ich würde auch eine Meinung darüber, wo solche Operationen (unter "Routen"? Separate Dateien? Etc.)

Danke für Ihre Zeit!

    
Traveling Tech Guy 10.09.2012, 05:05
quelle

2 Antworten

8

Das asynchrone Modul passt in diese Art von Arbeit. Insbesondere können Sie die Funktion asyncwasserfall verwenden.

Beispiel:

%Vor%

Bearbeiten, wenn Sie einige nichttriviale Abhängigkeiten zwischen den Jobs haben, dann können Sie async.auto verwenden. Es bestimmt die beste Reihenfolge für das Ausführen von Funktionen basierend auf ihren Anforderungen.

    
qiao 10.09.2012, 06:02
quelle
2

Es gibt viele Kontrollflussbibliotheken in der Umgebung. Ich habe Q in meinen vorherigen Projekten verwendet, über die ich keine Beschwerden habe, aber wahrscheinlich werde ich die async-Bibliothek von coolan für mein nächstes Projekt verwenden.

Ссылка

Was Sie oben beschrieben haben, möchten Sie wahrscheinlich mit der Parallelfunktion sehen

Ссылка

Das von Ihnen beschriebene Problem kann ziemlich einfach auf das parallele Beispiel in der Dokumentation übertragen werden.

EDIT: Ich habe das bisschen über abhängige API-Aufrufe verpasst. Wann immer Sie Werte entlang der Kette übergeben und die Reihenfolge steuern müssen, müssen Sie die Wasserfallmethode verwenden (siehe qiaos Antwort). Wenn es einen Fall gibt, in dem die Aufrufe unabhängig sind, würden Sie die parallele Methode verwenden. Ein Beispiel für die parallele Methode finden Sie unter

%Vor%

Was dies tut, macht alle Ihre Anfragen parallel und gibt Ihnen einen Rückruf, wenn sie alle erledigt sind. Hier würden Sie Ihre Daten massieren.

Liste der Kontrollfluss-Bibliotheken:

Ссылка

    
wdavo 10.09.2012 06:04
quelle

Tags und Links