2016-09-16 9 views
1

送信データをキャプチャする必要があります。ミドルウェアを設定し、リクエストとレスポンスヘッダを取得する方法を知っています。ExpressでResponseオブジェクトのデータをキャプチャ(またはログ)する方法は?

私は送信されたデータを取得するよう求めています。

私はこれをしようとしている:

var express = require('express') 
var app = express(); 

var onFinished = require('on-finished') 

app.listen(3000); 

function logRes(res){ 
    console.log('* captured response *') 
    console.log(res._header) 
    console.log(res.statusCode) 
    console.log(res.statusMessage) 
    console.log(res.body) // THIS DOES NOT WORKS! 
} 

app.use(function(req,res,next){ 
    onFinished(res, function (err, res) { 
     logRes(res) 
    }) 
    console.log('= captured request ='); 
    console.log(req.method) 
    console.log(req.path) 
    console.log(req.query) 
    next(); 
}); 

app.get('/example',function(req,res){ 
    res.header('Content-Type','text/plain'); 
    res.end('example data'); 
}); 

はどの// THIS DOES NOT WORKS!コメントに沿って送信されたデータを見てどのように私に言うことはできますか?サードパーティ製のミドルウェアbody-parser含むように

答えて

-3

あなたが最初の必要性:

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 

app.listen(3000); 

app.use(bodyParser.json({ type: 'application/*+json' })); 

app.use(function(req,res,next) { 
    console.log('= captured request ='); 
    console.log(req.method); 
    console.log(req.path); 
    console.log(req.query); 
    console.log(req.body); 
    next(); 
}); 

app.get('/example',function(req,res) { 
    res.header('Content-Type','text/plain'); 
    res.end('example data'); 
}); 

をレポとドキュメントhereを確認してください。

+0

'var bodyParser = require( 'body-parser')'は問題を解決しません。私はあなたのコードを試します。私はChromeの 'http:// localhost:3000/example'を入れて、' console.log(res.body) '行に' undefined'を取得します。私は 'body-parse'が要求を解析して、キャプチャされたレスポンスを表示しないようにします** –

+0

@EmilioPlatzer明らかに' bodyParser'はリクエストを解析することです、あなたが送信したデータはボディリクエストの一部ですそれを 'req'オブジェクトから取得する必要があります(resの代わりに)。 – ianaya89

+0

あなたの投稿とあなたのコメントは私の質問に答えていません。送信されたデータを見るには?私はあなたの編集例を試してみます。ログでは、 "example data"は表示されません。あなた見えますか?。私はクライアントに送信されたすべてのデータを見る方法を尋ねようとしています。クライアントは "example data"を受信しましたが(ナビゲータに表示されます)、 'console.log'には表示されません。 –

関連する問題