如何为Express项目所有路由统一添加指定路径前缀
路由统一添加
/api/health前缀实现方法 不需要改动单个业务路由文件(比如routes/food.js),只需要调整统一路由挂载逻辑即可,两种可选方案如下:
方案1:修改路由总入口
routes/index.js(推荐,后续维护最方便)
把原来直接把路由挂到app实例的逻辑,改成先挂到内部路由实例,再统一加前缀挂载到app,修改后代码:const express = require('express') const foodRoute = require('./food'); const rootRouter = express.Router() // 原有业务路由挂载逻辑不变 rootRouter.use('/food', foodRoute) module.exports = function (app) { // 统一绑定全局前缀 app.use('/api/health', rootRouter) };改完后原有
GET /food接口会自动变为GET /api/health/food,后续新增业务路由只要挂载到rootRouter上,都会自动携带统一前缀。方案2:修改项目根目录入口文件
/index.js
如果你不想改动routes/index.js的现有结构,可以直接在入口处调整挂载逻辑,把原来的代码:require('./routes')(app);替换为:
const express = require('express') const prefixRouter = express.Router() // 先把所有业务路由挂载到前缀路由实例 require('./routes')(prefixRouter) // 统一注册带前缀的路由 app.use('/api/health', prefixRouter)你当前的路由导出逻辑完全兼容这种写法,不需要额外修改其他文件。
两种方案效果完全一致,改完后所有接口都会自动携带
/api/health前缀,不需要逐个修改单路由文件的配置。
内容的提问来源于stack exchange,提问作者Jessica
相关产品推荐
相关产品推荐

