【发布时间】:2021-05-25 09:10:09
【问题描述】:
我在尝试运行的 node.js/express 应用程序时遇到问题。 在本地主机上运行时,我传递给路由的数据被解析,我能够成功使用 req.body.message。但是在我的实时站点上,这只返回未定义。为什么会这样,我该如何解决?
这是我在本地主机和实时服务器上使用的 node.js 应用程序。
const express = require("express");
const cors = require("cors");
const router = express.Router();
const app = express();
router.post("/send", (req, res) => {
res.send(`message is ${req.body.message}`);
});
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use("/", router);
const PORT = 3030;
app.listen(PORT, () => console.log("Server on " + PORT));
如果我在本地主机上使用“message”:“hello”进行 POST,我会收到“message is hello”的响应,但在实时服务器上,我会收到“message is undefined”。
任何建议表示赞赏,干杯。
【问题讨论】:
-
中间件的顺序在express中很重要。在跨域平台上,你需要在中间件配置之后定义你的路由,或者在 router.post 中将所需的中间件作为参数传递。
标签: javascript node.js express cors