【问题标题】:Cannot test Api after deploying to heroku部署到 Heroku 后无法测试 Api
【发布时间】: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


【解决方案1】:

这听起来可能很愚蠢,但没有找到任何请求的原因是因为我没有将我的新更新推送到 github(我相信我做了并且没有检查),因为我设置了自动部署到 heroku。哈哈。非常感谢 Arun 的关心和帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-19
    • 2018-03-09
    • 2017-09-27
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多