隐藏用户y 2024-07-06 13:45 采纳率: 64.4%
浏览 47
已结题

postman发送post请求返回undefined相关问题

使用postman发送post请求,总是返回undefined
下面是users.js

const express = require("express");
//创建一个路由中间件
const router = express.Router();
router.post("/test", function (req, res) {
    console.log(req.body)
    res.json(req.body)
})
// 导出路由中间件
module.exports = router;

下面是api.js

const express = require("express");
let app = express();
// 引入路由中间件
let userRouter = require("./routes/users");

app.use("/users", userRouter)

app.use(express.json()) // for parsing application/json
app.use(express.urlencoded()) // for parsing application/x-www-form-urlencoded

app.listen(3000, function () {
    console.log("服务器启动成功 http://localhost:3000")
});

nodemon运行api.js启动服务器成功,但是发送post请求,vscode终端返回undefined,postman的post界面下面也没有内容

img

img

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-06 13:45
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 从代码来看,使用Postman发送POST请求时返回了undefined,可以初步判断是请求体的数据没有正确被解析和传递到服务器中。下面对代码进行分析和解决:
    1. users.js中,req.body获取请求体数据时返回undefined,这说明请求体没有被正确解析。
    2. 在api.js中,需要在app.use(express.urlencoded())前添加中间件app.use(express.json()),用于解析application/json请求体的数据。
    3. 在Postman中发送POST请求时,需要选择正确的请求方法和URL,并且在Body -> raw -> JSON中设置请求体的数据格式为JSON。 下面是解决问题的代码: users.js:
    const express = require("express");
    const router = express.Router();
    router.post("/test", function (req, res) {
      console.log(req.body);
      res.json(req.body);
    });
    module.exports = router;
    

    api.js:

    const express = require("express");
    const app = express();
    app.use(express.json()); // 解析application/json请求体的数据
    app.use(express.urlencoded({ extended: false })); // 解析application/x-www-form-urlencoded请求体的数据
    let userRouter = require("./routes/users");
    app.use("/users", userRouter);
    app.listen(3000, function () {
      console.log("服务器启动成功 http://localhost:3000");
    });
    

    通过以上的修改,重新启动服务器,然后在Postman中发送POST请求,应该可以正确接收和解析请求体的数据,并返回相应的结果。 案例验证: 1. 使用Postman发送POST请求,请求方法为POST,URL为http://localhost:3000/users/test,Body -> raw -> JSON中设置请求体的数据格式为JSON。 2. 请求体数据为:

    {
      "username": "John",
      "age": 20
    }
    
    1. 发送请求后,服务器成功打印请求体数据,并返回相同的数据:
    {
      "username": "John",
      "age": 20
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月14日
  • 已采纳回答 7月6日
  • 创建了问题 7月6日