2016-04-05 2 views
0

Возможно ли получить содержимое body с использованием express?Выбирать тело из запроса GET с помощью nodejs, express, body-parser?

Я начал с попытки 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

Primo, 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. Могут существовать сотни «uuids», если все они будут помещены в строку 'query'? – bobbyrne01

+0

@ bobbyrne01 Почему вы не можете использовать запрос POST? Ограничение длины строки запроса ограничено, но оно довольно велико. –

+0

Я могу использовать 'POST', но старался оставаться как RESTful, насколько это возможно. Я понимаю, что ограничение по длине велико, но возможно, я мог бы ударить его. – bobbyrne01