Req.body 在 express 中是空的,即使我做了一切

Req.body is empty in express even i did everything

大家好,我搜索了很多相关内容并尝试了所有方法,但我在 post 中仍然是空的 (表单发送正文正确我只是用提琴手测试节点快递没有得到)!

这是代码:

这是我的表格

<form action="/user/login" method="POST">
                        <div class="form-group">
                            <label class="form-control-label">USERNAME</label>
                            <input type="text" class="form-control" name="username">
                        </div>
                        <div class="form-group">
                            <label class="form-control-label">PASSWORD</label>
                            <input type="password" class="form-control" name="password">
                        </div>

                        <div class="col-lg-12 loginbttm d-flex">
                            <div class="col-lg-6 login-btm login-text">
                                <p id="loginError" class="text-danger"></p>
                            </div>
                            <div class="col-lg-6 login-btm login-button">
                                <button type="submit" class="btn btn-outline-primary" id="loginBtn">LOGIN</button>
                            </div>
                        </div>
                    </form>

这是我的路由器和快递代码:

app.use(express.json());
app.use(express.urlencoded({extended:true}));
const {loginRouter,loginRouterP} = require('./src/routes/login');
app.use('/login', loginRouter);
app.use('/user/login', loginRouterP);

这是其他文件夹中的登录路由器,我得到的正文为空:

loginRouter.get('',async(req,res) => {
res.render('login');
});
loginRouterP.post('',async(req,res) => {
console.log(req.body); // This is always {} i tried almost everything I found in Whosebug
});

编辑:抱歉,enctype 是错误的,我只是想修复

我假设您需要一个额外的中间件来接受 plain/text 格式

app.use(express.json());
app.use(express.text()) // this is for plan/text format
app.use(express.urlencoded({extended: true})); //Parse URL-encoded bodies 

如果您正在处理 multipart/form-data,您可能需要像 multer

这样的软件包