Node.js Express如何将不同路径的app.get路由拆分到独立文件中
Express 路由拆分实现方案
核心实现依赖Express内置的express.Router()能力,将不同路径的业务逻辑拆分到独立文件中,完全匹配你的需求。
步骤1:创建路由目录与对应文件
建议在项目根目录新建routes文件夹存放所有拆分后的路由文件,目录结构如下:
你的项目/ ├── index.js (原项目入口文件) └── routes/ ├── index.js 存放根路径"/"相关逻辑 ├── admin.js 存放"/admin"路径相关逻辑 └── post.js 存放"/post"路径相关逻辑
步骤2:编写各路由文件内容
routes/index.js(根路径逻辑)
const express = require('express'); const router = express.Router(); // 原根路径的业务逻辑迁移到此处 router.get('/', function(request, response) { response.render('index', { foo: "bar" }) }) // 后续根路径下的其他子路由(比如"/about")也可以统一放在这个文件里 module.exports = router;
routes/admin.js(/admin路径逻辑)
const express = require('express'); const router = express.Router(); // /admin路径的GET请求逻辑 router.get('/', function(request, response) { // 可在这里写后台相关的权限校验、数据查询等业务代码 response.render('admin/index') }) // 后续admin路径下的子路由(比如"/admin/setting")都可以放在这个文件 module.exports = router;
routes/post.js(/post路径逻辑)
const express = require('express'); const router = express.Router(); // /post路径的GET请求逻辑 router.get('/', function(request, response) { // 可在这里写文章相关的查询、分页等业务代码 response.render('post/list') }) // 后续post路径下的子路由(比如"/post/123")都可以放在这个文件 module.exports = router;
步骤3:修改原入口index.js挂载路由
删除原入口文件中根路径的app.get代码,替换为路由挂载逻辑:
const express = require('express'); const app = express(); // 引入拆分后的路由文件 const indexRouter = require('./routes/index'); const adminRouter = require('./routes/admin'); const postRouter = require('./routes/post'); // 将路由挂载到对应的路径前缀 app.use('/', indexRouter); app.use('/admin', adminRouter); app.use('/post', postRouter); // 原有项目的其他配置、端口监听逻辑保持不变即可 app.listen(3000, () => { console.log('服务运行在3000端口') })
方案优势
- 各路径的业务逻辑完全隔离,后续迭代修改不需要改动入口文件
- 每个路由文件可以独立配置专属中间件,比如给admin路由单独加权限校验,不会影响其他路径
- 符合Express官方最佳实践,后续业务规模扩大后可以继续拆分更多路由文件
内容的提问来源于stack exchange,提问作者Yash Kejriwal
相关产品推荐
相关产品推荐

