【问题标题】:Express Routes not functioning快速路线不起作用
【发布时间】:2021-11-04 20:05:49
【问题描述】:

我正在尝试创建到我的用户文件以及其他文件的路由,但是当我使用邮递员向 https://localhost:3000/api/users 发送获取请求时,我收到“无法获取 api/users/错误。

我尝试将 require 语句放入变量中,然后将其传递给 app.use() 函数。我还确保在我的 users.js 文件中,第一个参数只是一个“/”。此外,不仅仅是用户路线,我的所有路线都不起作用。有人能看出我的错误吗?

这里是 server.js 文件

const express = require("express");
const connectDB = require("./config/db");

const app = express();

//Connect DB

connectDB();

app.get("/", (req, res) => res.send("API Running"));

//define routes

const userRoute = require("./routes/api/users");

app.use("api/users", userRoute);
app.use("api/auth", require("./routes/api/auth"));
app.use("api/profile", 
require("./routes/api/profile"));
app.use("api/posts", require("./routes/api/posts"));

const PORT = process.env.PORT || 3000;

app.listen(PORT, () =>
  console.log(`Server started on port: ${PORT}
`)
);

这里是 users.js 文件,所有其他路由器文件都相似,只是名称不同。

const express = require("express");
const router = express.Router();

// @route    get api/users
// @desc     test route
// @ access  Public

router.get("/", (req, res) => res.send("User Route"));

module.exports = router;

我还尝试将 users.js 中的最后一行更改为导出默认路由器,但这只会导致意外的令牌错误。提前感谢您的帮助。

【问题讨论】:

    标签: javascript node.js api express


    【解决方案1】:

    在 server.js 文件中的路由定义之前添加 '/'。因此,您对用户的路由定义将是app.use("/api/users", userRoute)。对所有路由定义执行相同操作

    【讨论】:

      【解决方案2】:

      只需在 server.js 中将您的行 app.use("api/users", userRoute); 替换为 app.use("/api/users", userRoute);

      【讨论】:

      • 太棒了,解决了我的问题,感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2019-06-08
      • 2019-08-28
      相关资源
      最近更新 更多