2016-04-05 7 views
0

expressを使用してbodyのコンテンツを取得することはできますか?nodejs、express、body-parserを使用してGETリクエストから本文を解析しますか?

私はbody-parserを試して始めましたが、それはGETとは動作しません。動作するモジュールはありますか?

var express = require('express'), 
    bodyParser = require('body-parser'), 
    PORT = process.env.PORT || 4101, 
    app = express(); 

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

app.route('/') 
    .get(function(req, res) { 
    respond(req, res, 'GET body contents:\n'); 
    }) 
    .post(function(req, res) { 
    respond(req, res, 'POST body contents:\n'); 
    }); 

app.listen(PORT, function(err) { 
    if (err) { 
    console.log('err on startup ' + err); 
    return; 
    } 
    console.log('Server listening on port ' + PORT); 
}); 

/* 
* Send a response back to client 
*/ 
function respond(req, res, msg){ 
    res.setHeader('Content-Type', 'text/plain'); 
    res.write(msg); 
    res.end(JSON.stringify(req.body, null, 2)); 
} 

これはGETからの応答である:

GET body contents: 
{} 

そしてPOSTから:

POST body contents: 
{ 
    "gggg": "" 
} 
+1

プリモ、GETリクエストのは、身体 –

+1

はこれを見て取る必要はありません。http://stackoverflow.com/questions/978061/http-get-with-request-body – lauriys

+0

GETリクエストのは、身体を持っていません。代わりにPOSTを使用してください。 – Sapikelio

答えて

3

GET要求は体を持っていない、彼らは、クエリ文字列を持っています。 expressJSのクエリ文字列にアクセスするには、req.queryオブジェクトを使用する必要があります。

res.end(JSON.stringify(req.query, null, 2)); 
+0

問題は、私がユーザーに 'uuids'のリストを' GETリクエストボディ。これらの「uuids」をdbに対して検索します。これらがすべて 'query'文字列に入れられると、何百ものuuidsが渡されます。 – bobbyrne01

+0

@ bobbyrne01なぜPOSTリクエストを使用できないのですか?クエリ文字列の長さには制限がありますが、かなり大きいです –

+0

私は 'POST'を使うことができますが、可能な限りRESTfulのままにしようとしていました。私は長さの制限が大きいことを理解しますが、私はそれを打つ可能性があります。 – bobbyrne01

関連する問題