【发布时间】:2021-07-15 05:47:48
【问题描述】:
在将我的应用部署到 heroku 后,我无法使用已部署的应用 url https://blue-collar-backend.herokuapp.com 对邮递员发出 get 或 post 请求。如果我尝试使用该 url 对邮递员进行测试,我会收到此错误
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /user/signup</pre>
</body>
</html>
这是我部署的应用程序链接here。但我只能向主服务器https://blue-collar-backend.herokuapp.com/ 发出get 请求。我不知道我是否应该在我的代码中添加一些东西。另外,我的应用已经连接到 mongo atlas 数据库
这是我的 route.js 文件:
const express = require("express");
const userRoute = express.Router();
const UserController = require("../controllers/user/user.controller");
userRoute.post("/signup", UserController.signup)
userRoute.get("/verify/:emailToken", UserController.verify)
userRoute.post("/login", UserController.login);
module.exports = userRoute
还有我的 index.js 文件:
const express = require("express");
const cors = require("cors");
const env = require("dotenv");
const connectDatabase = require("./config/db");
const userRoute = require("./routes/user.route")
env.config()
connectDatabase()
const PORT = process.env.PORT || 8080;
const app = express()
app.disable('x-powered-by');
app.use(cors());
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Credentials', 'true');
res.header(
'Access-Control-Allow-Methods',
'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS',
);
res.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept',
);
return next();
});
app.get('/', (req, res) =>
res.status(200).json({
error: false,
message: 'Blue Collar server is ready to move',
}),
);
app.use("/user", userRoute);
const SERVER = app.listen(PORT, () => {
if (process.env.NODE_ENV === 'development') {
console.info(
`listening on http://localhost:${
SERVER.address().port
} @ ${new Date().toJSON()}`,
);
}
});
module.exports = SERVER;
【问题讨论】:
-
看起来您没有
POST /user/signup的路由处理程序。可以分享一下相关的后端代码吗? -
感谢您的回复。我刚刚编辑了帖子,添加了相关的后端代码。我愿意展示我的代码的任何其他相关部分。
标签: node.js mongodb api heroku postman