2016-09-29 3 views
2

私はnodejsにWebサーバーを作成しました。ほとんどの場合、あるサービスからメッセージを受け取り、何かをして、別のサービスにメッセージを送信しています。私はすべてのコミュニケーションの真中にいる。node.jsプログラムで要求と応答オブジェクト全体をどのように見ることができますか?

時々、通信が失敗します。私は何が起こっているのかデバッグしようとしています。私は入って来る要求を調べたいと思います。

私はエクスプレスで書かれたノードサービスを持っています。私はルートを持っており、ルートにはreqオブジェクトとrespオブジェクトが渡されます。私はreqオブジェクトを印刷することができるはずです。問題が解決しました!

しかし、JSON.stringifyはエラーをスローします。 util.inspectはエラーをスローしませんが、多くのプロパティ値は[circular]とマークされています。実際のプロパティ値は表示されません。

私がconsole.log(req.body)を実行すると、undefinedが出力されます。 util.inspectを使ってreq.bodyを見るとbody:{}

私はフレームワークが私からものを隠していると感じています。私はそれがprettifiedされていない情報を得る方法を知らない。

tcp/ipレベルでは、あまりにも詳細です。アプリケーションレベルでは、それは十分詳細ではありません。しかし、httpレベルでは、それはちょうど正しいはずです。受け取ったリクエストはテキストだけです。私はそれを印刷することができるはずです。

チャールズを使ってみましたが、設定に問題があります。

確かに、フレームワークがマッサージする前に、他の人がリクエストを見たいと思っていました。彼らはどうしたのですか?

答えて

0

のためのHTTPリクエストロガーミドルウェアです。私はそこに答えを得た:ノード内の要求オブジェクトのrawBody属性があるように使用され、基本的に
Node.js - get raw request body using Express
:ここ
Where did the information I passed in go?
は、ノードがこのように設計されるようになったかについての議論です。人々はそれを取り出した。同じことを達成するには少しのコードが必要です。

1

あなたはmorgan moduleを使用することができ、それは私がミドルウェアのノードスタックの下位レベルを使用して、より具体的な質問をしたNode.jsの

+0

こんにちは、いいえ。私はモルガンに挑戦した。私に "煮詰めた"情報を与えたいと思う。私は "Apache composite"を使っていましたが、私が望むものを手に入れられませんでした。特に、私が送ったデータ(私がリクエストボディにあると信じていた)は表示されませんでした。私は "city = chicago"を送ってログ内でそれを見なかった。私はそれが終わったことを知っています。なぜなら私が "都市=アトランタ"を送るとき、私は反対側で別の結果を得るからです。 – user2171796

関連する問題