2016-04-05 65 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''列表中提交'uuids'列表, GET'請求正文。我將查找這些'uuids'對數據庫。可能有數百個'uuids'通過了,是否應該將這些全部放入'query'字符串中? – bobbyrne01

+0

@ bobbyrne01爲什麼你不能使用POST請求呢?查詢字符串的長度有限制,但它相當大 –

+0

我可以使用'POST',但試圖儘可能保持RESTful。我知道長度的限制很大,但是我有可能擊中它。 – bobbyrne01