我认为您正在将response
对象的使用与的使用混为一谈request
。
该response
对象用于将HTTP响应发送回调用客户端,而您想要访问的正文request
。请参阅此答案,它提供了一些指导。
如果您使用的是有效的JSON并通过进行发布Content-Type: application/json
,则可以使用bodyParser
中间件解析请求正文并将结果放入request.body
您的路由中。
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"}
已针对Express 4+更新
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.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);
request.body.MyKey