2017-03-23 5 views
0

Ich verwende derzeit ein Framework in Node.js (the botbuilder module from Microsoft Bot Framework), das das request[2] Modul verwendet, um HTTP-Anfragen zu machen.Node.Js: Wie man den Körper einer Anfrage ohne Zugriff auf das Request-Objekt protokolliert

Ich stoße auf ein Problem: Dieses Framework scheint einen fehlerhaften JSON an die Server von Microsoft zu senden, aber ich verstehe nicht, warum und woraus diese JSON-Nachricht besteht.

Also ich bin auf der Suche nach einer Möglichkeit, diese Nachrichten zu protokollieren, einen Blick auf diese fehlerhafte JSON zu werfen, da ich keinen Zugriff auf das Anfrageobjekt habe (es sei denn, ich ändere den Framework-Code, der nichts ist Man sollte tun)

Bis jetzt kann ich den Antworttext protokollieren (durch Hinzufügen von request zur Umgebungsvariable NODE_DEBUG), aber nicht den ursprünglichen Anfragetext. Ich habe versucht, eine tcpdump auf unserem Server, aber da es alles HTTPS ist, gibt es nichts, was ich dort verwenden kann.

Irgendeine Idee/Werkzeug, das helfen könnte? Danke für Ihre Zeit.

+0

Ein guter Web-Debugging-Proxy ist ein absolutes Muss in jeder Toolbox eines Webentwicklers, etwas wie https://www.charlesproxy.com/ oder http://www.telerik.com/fiddler Es erlaubt Ihnen, Anfragen und Antworten zu prüfen, simulieren Sie langsame Verbindungen durch Throttling und vieles mehr – Creynders

+0

Wohlgemerkt, ich erstelle keine browserbasierte Webanwendung. Ich habe über einen serverseitigen Proxy nachgedacht, gehe aber davon aus, dass dadurch Sicherheitswarnungen ausgelöst werden, da Proxies verschlüsselten Verkehr nicht entschlüsseln dürfen. –

+0

In Charles können Sie SSL-Proxy-Dienste https://www.charlesproxy.com/documentation/proxying/ssl-proxying/ haben. – Creynders

Antwort

0

Verwenden Sie Node.js Middleware, um alle Ihre Anfragen zu protokollieren. Zum Beispiel könnten Sie das Modul request-debug verwenden.

Ein weiteres beliebtes Abfrageprotokollierung Middleware wissenswertes ist Morgan, vom Express.js Server-Team.

+0

Auf der Seite, die Sie über 'request-debug 'verlinken:" Funktioniert nicht mit Anforderungsversionen älter als 2.22.0 (Juli 2013). Tests beginnen erst nach Version 2.28.0 (Dezember 2013) " –

+0

Und es scheint dass Morgan verwendet wird, um "server-orientierte" Protokolle zu erstellen (Sie protokollieren die Aktivität Ihres Express-Servers), was in meinem Fall nicht das ist, was das Anfrage-Modul betrifft. –

Verwandte Themen