为了账号安全,请及时绑定邮箱和手机立即绑定

expressjs显示post数据返回一个空对象

expressjs显示post数据返回一个空对象

哆啦的时光机 2023-02-24 15:54:22
所以我正在使用 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);});因此,在提交登录数据后,我尝试显示登录表单中的发布数据,但它返回一个空对象{}console.log(req.body);尝试做req.params但结果相同。非常感谢任何帮助和想法。
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

我认为这可能是您问题的正确解决方案,因为您的代码中的一切似乎都是正确的,错误可能是由您调用 API 和设置标头的方式引起的:

https://stackoverflow.com/a/25904070/12090205


查看完整回答
反对 回复 2023-02-24
?
杨魅力

TA贡献1811条经验 获得超6个赞

我尝试运行您的代码并且运行良好。也许你调用 API 的方式不对

要支持 content-type: x-www-form-urlencoded 你应该使用

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

并支持 content-type: application/json 你应该使用

app.use(bodyParser.json());

我认为您正在使用表单数据,因为这些都不起作用。为此,您可能需要使用强大的包。只有在发送任何图像/文件时,我们才应该使用表单数据内容类型。

并且 body-parser 已与 express 合并。你现在可以直接使用这个

app.use(
  express.json(),
  express.urlencoded({ extended: false })
);


查看完整回答
反对 回复 2023-02-24
?
侃侃无极

TA贡献2051条经验 获得超10个赞

//img1.sycdn.imooc.com//63f86d7a0001920c19081076.jpg

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.use(bodyParser.json());


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);

});

我检查了它的工作。


查看完整回答
反对 回复 2023-02-24
  • 3 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信