我花了一整天的时间试图理解为什么它不起作用。。。
如果我去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