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

所以我正在使用 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但结果相同。非常感谢任何帮助和想法。


哆啦的时光机
浏览 147回答 3
3回答

Qyouu

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

杨魅力

我尝试运行您的代码并且运行良好。也许你调用 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 }) );

侃侃无极

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);});我检查了它的工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript