Hinzufügen eines Hooks, um alle Knoten-HTTP-Antworten in node.js / express global zu protokollieren

8

Ich verwende node.js und express, um HTTP-Anfragen und -Antworten zu bearbeiten. Mit dem http.ServerRequest -Ereignis kann ich HTTP-Anfragen hinzufügen und protokollieren. Es scheint kein ähnliches Ereignis für http.ServerResponse zu geben und ich frage mich, wie ich alle HTTP-Antworten mit einem Codeabschnitt protokollieren kann, den mein Server sendet?

    
Edmond Meinfelder 03.01.2012, 22:37
quelle

4 Antworten

10

Ich habe aus einem ähnlichen Bedürfnis ein Paket erstellt, das so etwas tut. Schauen Sie sich express-request-logger

an

Das Herz des Programms ist so, es enthält zusätzlichen Code, so dass Sie Ihre eigene Schlüssel-Wert-Karte von Daten haben können, die pro Anfrage protokolliert werden:

%Vor%

Der obige Code läuft als Middleware in Express. Schau dir den Code an, und wenn du weitere Fragen hast, kontaktiere mich hier oder github.

    
staackuser2 04.01.2012, 02:45
quelle
8

Es wird nicht mehr benötigt, um monkeypatch zu sein, solange ein finish -Ereignis auf end () - Funktion seit node.js 0.8.12.

Tatsächlich wurde es ursprünglich als Ende in 0.8.8 veröffentlicht auch dies ), aber Es hat die Duplex-Dateien von schreibbaren Streams zerstört , also wurde es umbenannt, um es zu beenden.

    
Dario Castañé 30.12.2012 17:49
quelle
3

Wenn Sie nur (Anfragen und / oder Antworten) protokollieren möchten, besuchen Sie express-winston . Im Gegensatz zu morgan kann der Request / Response-Body sogar protokolliert werden.

Beispiel in coffeescript:

%Vor%     
Manuel Darveau 14.05.2015 01:11
quelle
-6

Wenn Sie Express 'res.send () für alle Antworten verwenden und es Ihnen nichts ausmacht, Code in das Express-Modul einzufügen, können Sie einfügen in

... / Knoten_Module / express / lib / response.js:

%Vor%

Ich glaube nicht, dass Sie auf ein Nicht-Fehler-Ereignis warten können - "Schließen" scheint nicht auf res.send (); Ich schätze, weil send () immer irgendwo in Ihrem Code aufgerufen wird.

    
Ray 04.01.2012 00:22
quelle

Tags und Links