我正在尝试使用NodeJS脚本(带有Express)提取POST数据。接收到主体,但是用Postman发布到页面时,我似乎无法从中提取变量。尽管我使用了在不同问题中发现的相同代码,但该变量未定义。我已经正确安装了Nodejs,express和body-parser。

为了澄清起见,我要用邮递员用键“用户名”和值“测试”发布表单数据。

有人知道我在做什么错吗?

var https = require('https');
var fs = require('fs');
var app = require('express')();
const bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


var httpsOptions = {
    key: fs.readFileSync('/home/privkey.pem'),
    cert: fs.readFileSync('/home/cert.pem'),
};

var server = https.createServer(httpsOptions, app);
server.listen(3000);


app.get('/', function(req, res) { //On get
    res.send(req.method);
});

app.post('/', function(req, res) { //On post
    res.send( req.body.username );
});

最佳答案

我想这与编码有关:


JSON:
您必须使用Content-Type设置标头:application / json和
在路线之前在express中添加编码:

app.use(bodyParser.json());

app.use(bodyParser.urlencoded({extended:true}));


否则,您可以只使用x-www-form-urlencoded选项并设置输入

关于node.js - Node.js Bodyparser返回未定义的主体变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52369308/

10-12 12:17