Javascript expressjs display post数据返回一个空对象
因此,我正在使用expressjs和socketio开发一个聊天服务器,并决定创建一个管理员,其中后端内置了节点聊天服务器本身Javascript expressjs display post数据返回一个空对象,javascript,node.js,express,Javascript,Node.js,Express,因此,我正在使用expressjs和socketio开发一个聊天服务器,并决定创建一个管理员,其中后端内置了节点聊天服务器本身 const express = require("express"); const app = express(); const port = 3700; let io = require('socket.io').listen(app.listen(port)); let socketList = io.sockets.server.eio.c
const express = require("express");
const app = express();
const port = 3700;
let io = require('socket.io').listen(app.listen(port));
let socketList = io.sockets.server.eio.clients;
const path = require('path');
const bodyParser = require('body-parser');
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static('public'));
app.get('/login', function(req, res) {
res.render('login', { title: 'Login | Argos Chat' });
});
app.post('/login', function(req, res) {
console.log(req.body);
});
因此,在提交登录数据时,我试图显示登录表单中的post数据,但它返回一个空对象{}
console.log(req.body);
试图做req.params
但结果相同。非常感谢任何帮助和想法。
我检查了它的工作情况。我试着运行你的代码,它工作正常。也许您调用API的方式不正确 要支持内容类型:x-www-form-urlencoded,您应该使用
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
为了支持内容类型,应该使用application/json
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
我认为您使用的是表单数据,因为这两种方法都不起作用。为此,您可能需要使用强大的软件包。我们应该仅在发送任何图像/文件时使用表单数据内容类型
主体解析器已与express合并。你现在可以直接使用这个了
app.use(
express.json(),
express.urlencoded({ extended: false })
);
我认为这可能是解决您问题的正确解决方案,因为代码中的一切似乎都是正确的,错误可能是由您调用API和设置标头的方式引起的:
都不使用app.use(bodyParser.urlencoded({extended:true}));或者app.use(bodyParser.json());worked.its not语句或两个语句都是不同的app.use(bodyParser.json());这一个用于其他目的&app.use(bodyParser.urlencoded({extended:true}));这一个用于其他目的。将两个输出相同的结果,仍然是一个空对象