Express 路由模塊化是實際開發中非常重要的一部分,可以讓你的項目結構更清晰、維護更方便。
🧱 一、為什么要模塊化?
隨著項目變大,如果所有路由都寫在 app.js
中,會很亂。使用模塊化后可以:
- 功能解耦:每個模塊管理自己的路由。
- 可維護性強:按業務拆分文件結構。
- 利于多人協作:多人開發互不干擾。
📁 二、目錄結構示例
project/
├── app.js
├── routes/
│ ├── index.js
│ └── user.js
🛠? 三、步驟講解
1?? 創建路由模塊: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;
2?? 創建主路由文件:routes/index.js
你也可以統一導出多個子路由模塊(可選做法):
const express = require('express');
const router = express.Router();router.get('/', (req, res) => {res.send('首頁');
});module.exports = router;
3?? 在主程序中引入使用:app.js
const express = require('express');
const app = express();
const port = 3000;// 引入路由模塊
const indexRouter = require('./routes/index');
const userRouter = require('./routes/user');// 掛載路由
app.use('/', indexRouter); // 訪問 http://localhost:3000/
app.use('/user', userRouter); // 訪問 http://localhost:3000/userapp.listen(port, () => {console.log(`Server running at http://localhost:${port}`);
});
? 四、訪問示例
路徑 | 響應內容 |
---|---|
GET / | 首頁 |
GET /user | 用戶首頁 |
GET /user/1001 | 獲取用戶 ID:1001 |
📌 五、模塊化小技巧
做法 | 好處 |
---|---|
一個模塊一個路由文件 | 清晰解耦 |
使用 express.Router() | 支持中間件嵌套和子路由 |
提取公共中間件 | 提高復用性 |
使用 routes/index.js 總入口 | 統一掛載更整潔 |
🧩 六、進階封裝建議(可選)
你可以封裝一個 registerRoutes(app)
函數專門注冊所有路由,類似于中大型項目的做法:
// router/index.js
module.exports = (app) => {app.use('/', require('./index'));app.use('/user', require('./user'));
};
// app.js
require('./routes')(app);