我认为您将response
对象的使用与request
.
该response
对象用于将 HTTP 响应发送回调用客户端,而您想要访问request
. 请参阅此答案,它提供了一些指导。
如果您使用的是有效的 JSON 并使用 POST Content-Type: application/json
,那么您可以使用bodyParser
中间件来解析请求正文并将结果放入request.body
您的路由中。
Express 4.16+ 的更新
从 4.16.0 版开始,可以使用新的express.json()
中间件。
var express = require('express');
var app = express();
app.use(express.json());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
为 Express 4.0 - 4.15 更新
正文解析器在 v4 之后被拆分成自己的 npm 包,需要单独安装npm install body-parser
var express = require('express')
, bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
对于 Express 的早期版本 (< 4)
var express = require('express')
, app = express.createServer();
app.use(express.bodyParser());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
沿着以下路线进行测试:
$ curl -d '{"MyKey":"My Value"}' -H "Content-Type: application/json" http://127.0.0.1:3000/
{"MyKey":"My Value"}