无法使用body-parser解析请求正文中的JSON数据 [英] The JSON data in request body is not getting parsed using body-parser
本文介绍了无法使用body-parser解析请求正文中的JSON数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我使用邮递员将POST请求发送到带有请求正文的localhost:8080/api/newUser时:
When I send a POST request using postman to localhost:8080/api/newUser with request body:
{name: "Harry Potter"}
在服务器端console.log(request.body)打印:
At server end console.log(req.body) prints:
{ '{name: "Harry Potter"}': '' }
server.js
server.js
var express = require('express');
var app = express();
var router = express.Router();
var bodyParser = require('body-parser');
app.use('/', express.static(__dirname));
router.use(function(req, res, next) {
next();
});
router
.route('/newUser')
.post(function(req, res) {
console.log(req.body);
});
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json()); // support json encoded bodies
app.use('/api', router);
app.listen(8080);
我在做什么错了?
推荐答案
在express.js中,声明中间件的顺序非常重要. bodyParser
中间件必须比您自己的中间件(api端点)定义得早.
In express.js the order in which you declare middleware is very important. bodyParser
middleware must be defined early than your own middleware (api endpoints).
var express = require('express');
var app = express();
var router = express.Router();
var bodyParser = require('body-parser');
app.use('/', express.static(__dirname));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json()); // support json encoded bodies
router
.route('/newUser')
.post(function(req, res) {
console.log(req.body);
});
app.use('/api', router);
app.listen(8080);
这篇关于无法使用body-parser解析请求正文中的JSON数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文