所以我正在开发一个使用expressjs和socketio的聊天服务器,并决定创建一个管理员,其中后端内置了node聊天服务器本身。
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
,但同样的结果.Any帮助,想法是非常感谢。
发布于 2020-09-11 05:18:42
我试着运行你的代码,它工作得很好。也许您调用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 })
);
发布于 2020-09-11 08:14:21
我认为这可能是您的问题的正确解决方案,因为您的代码中似乎一切都是正确的,错误可能是由于您调用API的方式和您设置头文件的方式造成的:
发布于 2020-09-11 03:46:33
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);
});
我检查了它的工作情况。
https://stackoverflow.com/questions/63840414
复制