node.js - 没有从 api 调用收到请求正文
问题描述
这是我的 server.js -
const express = require("express");
const connectDB = require("./api/config/db");
const feedbackRouter = require("./api/routes/feedbackRouter");
const app = express();
const PORT = process.env.PORT || 5000;
connectDB();
app.use(feedbackRouter);
app.listen(PORT, () => {
console.log(`SERVER IS LIVE AT ${PORT}`);
});
路由器(feedbackRouter.js)-
const express = require("express");
const router = express.Router();
router.post("/feedback", (req, res) => {
const feedbackData = req.body;
try {
console.log(feedbackData);
res.send(feedbackData);
} catch (error) {
res.status(400).send(error);
}
});
module.exports = router;
当我从前端(React)或 Postman 进行 API 调用时,它req.body
给了我 undefined 并且我在任何地方都看不到请求中的内容。
API 调用在 Postman 中给了我 200 的状态码。
知道这里可能有什么问题吗?提前致谢。
解决方案
将app.use(express.json())添加到您的代码中。
服务器.js:
const express = require("express");
const connectDB = require("./api/config/db");
const feedbackRouter = require("./api/routes/feedbackRouter");
const app = express();
const PORT = process.env.PORT || 5000;
app.use(express.json())
connectDB();
app.use(feedbackRouter);
app.listen(PORT, () => {
console.log(`SERVER IS LIVE AT ${PORT}`);
});
关于 express.json() 方法及其选项:
您没有使用任何正文解析器,它们用于处理请求的正文,文档:
http://expressjs.com/en/resources/middleware/body-parser.html
推荐阅读
- python - python flatten array 数组,为什么 funtools 比较慢?
- c# - 如何使用带有外部表属性的 txtbox.DataBindings?
- node.js - 单击登录后,页面会重新加载,然后我会返回登录弹出窗口。我正在使用 Nodejs - Auth0 - Heroku
- git - GitLab 克隆错误 RPC 失败;curl 56 请求的 URL 返回错误:401
- angular - 从回调函数访问不同命名空间中的属性和方法
- excel - 如何根据开始和长度动态填充单元格
- aws-amplify - AWS Amplify Storage:在存储中未找到提供商的插件
- javascript - ReactJS - 是什么让 bundle.js 变大
- android - 如何在 android studio 模拟器中修复此错误?
- asp.net - 如何从现有镜像构建 Docker 容器