【问题标题】:Req.body is empty in express even i did everythingReq.body 在快递中是空的,即使我做了一切
【发布时间】:2021-06-14 14:50:05
【问题描述】:

大家好,我搜索了很多关于它并尝试了一切,但我仍然在帖子中得到空的身体 (表单发送正文正确我只是用提琴手测试节点快递没有得到那个)!

代码如下:

这是我的表格

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

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

【问题讨论】:

  • 打开你的浏览器控制台,看看浏览器发送了什么样的Content-type标头,如果是multipart/form-data,你可能需要像multer这样的附加包
  • 如果您不处理任何文件,请将 multipart/form-data 更改为 application/x-www-form-urlencoded 或删除 enctype="multipart/form-data"(默认值,即采用第二个选项)。

标签: node.js forms express post


【解决方案1】:

我假设您需要额外的中间件来接受 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 这样的包

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多