【发布时间】:2016-07-25 07:45:19
【问题描述】:
是否可以使用express 检索body 的内容?
我开始尝试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": ""
}
【问题讨论】:
-
Primo,GET 请求没有正文
-
GET 请求没有正文。请改用 POST。
-
@bigdestroyer GET 请求确实允许正文
-
@bobbyrne01 虽然 GET 可以有一个主体,但根据 HTTP 规范,服务器应该忽略它,因为它没有任何意义。见this answer。服务器将如何处理所有这些 UUID?很可能需要以不同的方式构建应用程序,超长 URL 不太可能是适合这项工作的工具...
标签: node.js express body-parser