路由模块化
当应用规模增大,所有路由写在一个文件中将导致代码混乱。Express 提供了模块化路由的方式,将路由拆分为独立模块,有助于项目结构清晰、职责明确。
使用 express.Router 创建路由模块
express.Router() 是创建模块化、可挂载路由处理程序的类。
示例:用户路由模块
创建 routes/user.js 文件:
const express = require('express');
const router = express.Router();
// 获取用户列表
router.get('/', (req, res) => {
res.send('用户列表');
});
// 获取指定用户
router.get('/:id', (req, res) => {
res.send(`用户ID:${req.params.id}`);
});
module.exports = router;
`
在主应用中挂载路由模块
在 app.js 或主文件中引入并使用路由模块:
const express = require('express');
const app = express();
// 引入路由模块
const userRouter = require('./routes/user');
// 挂载到 /user 路径
app.use('/user', userRouter);
app.listen(3000, () => {
console.log('服务器已启动,端口 3000');
});
访问路径示例:
/user/→ 用户列表/user/123→ 获取 ID 为 123 的用户
支持多级模块化结构
可以根据功能划分多个路由文件:
routes/
├── user.js
├── product.js
└── order.js
分别挂载到对应路径:
app.use('/user', require('./routes/user'));
app.use('/product', require('./routes/product'));
app.use('/order', require('./routes/order'));
路由模块中间件支持
模块路由也可以使用中间件:
router.use((req, res, next) => {
console.log('用户路由时间:', Date.now());
next();
});
总结
路由模块化是构建大型 Express 应用的重要技巧,能够提升代码结构的清晰度,降低耦合度,让项目更易维护和扩展。
相关内容
- 常用中间件列表 本章节将介绍一些常用的 Express 中间件,它们可以帮助您简化应用的开发。中间件用于处理请求、响应,或在请求处理过程中执行额外的操作。本章节包括一些常见的中...
- 常见错误及解决方案 本章节将介绍在开发 Express 应用时常见的错误及其解决方案。通过了解这些常见问题及其处理方法,您可以更有效地调试和优化您的应用。
- 推荐阅读资源 本章节提供了一些推荐的学习资源,包括书籍、在线教程、视频课程和社区资源,帮助您深入了解 Express 和相关技术栈,提升开发技能。
- Express 对比 Koa 和 Next.js 本章节将对比 Express、Koa 和 Next.js 三个常见的 Node.js 框架,分析它们的特点、使用场景、优势和劣势,帮助开发者根据项目需求选择合适...
- 什么是 Node.js? Node.js 是基于 Chrome V8 引擎的 JavaScript 运行时环境,支持在服务器端运行 JavaScript,实现高性能非阻塞 I/O,广泛应...
- 什么是 Express? Express 是基于 Node.js 的极简灵活的 Web 应用框架,简化服务器端开发流程,提供强大的路由、中间件支持,广泛用于构建高性能 Web 服务和 A...