【问题标题】:Nodejs express Request body undefinedNodejs express 请求正文未定义
【发布时间】:2020-04-13 19:34:30
【问题描述】:

我在从请求正文中读取发布请求的参数时遇到问题,我知道这已被多次询问,但所有答案都是在为我执行此操作的路由调用 app.use() 之前调用正文解析器,并且也称为 bodyparser.urlencode() 并且每当我 console.log(req.body) 或仅打印 {} (一个空对象)时它仍然给我 undefined

这是我的代码

const bodyParser=require('body-parser');
const express=require('express');
const app=express();
app.use(
   bodyParser.urlencoded({
     extended: false
   })
 )

 app.use(bodyParser.json())

 app.post('/endpoint', (req, res) => {
   console.log(req.body);
   res.status(400).send({ "ReturnMsg": "User Already Exits" });
 })

 // the port where the application run
const port = process.env.PORT || 6001;
app.listen(port, () => console.log(`Listening on port ${port}...`));

【问题讨论】:

  • 你如何调用端点?你能添加请求 cURL 吗.. 或者可能是 POST 请求的代码
  • 我正在使用邮递员只是设置请求发布并将一些数据放入正文表单数据中

标签: node.js express mongoose request


【解决方案1】:

所以form-databody-parser支持,一般multipart/form-dataform-data的mime类型)用于上传文件。大多数与 API 相关的案例 JSONXML 被使用,当您从 HTML 发布 <form> 时,它通常以 application/x-www-form-urlencoded 发送。

application/x-www-form-urlencoded or multipart/form-data?的一行摘录:

总结;如果您有二进制(非字母数字)数据(或 显着大小的有效载荷)传输,使用多部分/表单数据。 否则,使用 application/x-www-form-urlencoded。

现在,来自 Postman 的 POST

将设置更改为 x-www-form-urlencodedraw->then select JSON from the dropdown

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 2021-01-28
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2019-06-26
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多