使用body-parser的POST请求(express.js v4.15.5,body-parser v1.18.2)不起作用

时间:2018-03-11 17:22:21

标签: node.js express post body-parser

我有代码,

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var PORT = 8080;

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json({type: 'application/*+json'}));

app.post('/', function (req, res) {
    if (!req.body) return res.sendStatus(400);
    console.log(req.body);
    res.send(200, 'welcome, ' + req.body.name)
});

app.listen(PORT, function () {
    console.log("Server listening on:   http://localhost:" + PORT);
});

当我发送一些数据到这条路线“/”就像POST请求一样,body总是{}清楚,我正在使用body-parser,extended:true和false,但没有任何改变。

测试。 我发送了这个数组:

{"name": "Petro"}

和req.body应该是相同的数组,但我得到{},

res.send(200, 'welcome, ' + req.body.name) //welcome, undefined

我想解决它。对于POST req我正在使用RestMan(PostMan),并在react.js中使用isomorphic-fetch,因此存在同样的问题。

1 个答案:

答案 0 :(得分:0)

您可能已经尝试过此操作...设置bodyParser.urlencoded({ extended: true })并确保在邮递员中选择x-www-form-urlencoded。或者选择raw作为正文类型,在Postman中为内容键入JSON对象并完全省略bodyParser.urlencoded({ extended: true })