Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript expressjs display post数据返回一个空对象_Javascript_Node.js_Express - Fatal编程技术网

Javascript expressjs display post数据返回一个空对象

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

因此,我正在使用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.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}));这一个用于其他目的。将两个输出相同的结果,仍然是一个空对象