为什么我的路由嵌套系统不起作用?



我花了一整天的时间试图理解为什么它不起作用。。。

如果我去localhost:3000/api,我希望看到API,我看到了。好吧。

但是,当我转到localhost:3000/api/auth时,我希望看到AUTH,由于某些原因,它显示了API。

我的路线系统出了什么问题?

文件夹结构:

-- routes
-- api
index.js
index.js
server.js

server.js

const express = require("express");
const indexRoute = require("./routes/index");
const app = express();
app.use(express.json());
app.use(indexRoute);
app.listen(3000);

routes/index.js

const router = require("express").Router();
router.use("/api", (req, res) => res.status(200).send("API"));
module.exports = router;

routes/api/index.js

const router = require("express").Router();
router.use("/auth", (req, res) => res.status(200).send("AUTH"));
module.exports = router;

您应该通过两个路由器,将路由器导入routes/api/index.js并将其作为第二个参数传递。

app.use(indexRoute, secondRoute);

这被称为模块化路由,正如文件所述:路由器实例是一个完整的中间件和路由系统;因此,它通常被称为"迷你应用程序"。

https://expressjs.com/en/guide/routing.html

最新更新