express中的Router作用就是為了方便我們更好的根據路由去分模塊。避免將所有路由都寫在入口文件中。
一、簡單的使用Router
const express = require('express'); let app = express(); app.listen(8888); //創建路由實例,我們可以在該實例上自由的添加路由 let usersRouter = express.Router(); let orderRouter = express.Router(); //添加兩個路由到應用上 app.use('/users', usersRouter); app.use('/order', orderRouter); //注意這時候再加路由,就可以不帶前面的/users路徑了 usersRouter.get('/', function (req, res) { res.send('用戶首頁'); }); usersRouter.get('/:id', function (req, res) { res.send(`${req.params.id} 用戶信息`); }); //注意這時候再加路由,就可以不帶前面的/order路徑了 orderRouter.get('/', function (req, res) { res.send('訂單首頁'); }); orderRouter.get('/:id', function (req, res) { res.send(`${req.params.id} 訂單信息`); });
二、划分文件使用Router
創建一個routes目錄,專門用於放置路由文件,通過module.exports導出供外部使用。
const express = require('express'); let app = express(); app.listen(8888); //添加兩個路由到應用上 app.use('/users', require('./routes/users')); app.use('/order', require('./routes/order')); //404判斷 app.use(function (req, res) { res.send('404 not found'); });
users.js的代碼:
const express = require('express'); let router = express.Router(); router.get('/', function (req, res) { res.send('用戶首頁'); }); router.get('/:id', function (req, res) { res.send(`${req.params.id} 用戶信息`); }); //導出該路由 module.exports = router;
order.js的代碼:
const express = require('express'); let router = express.Router(); router.get('/', function (req, res) { res.send('訂單首頁'); }); router.get('/:id', function (req, res) { res.send(`${req.params.id} 訂單信息`); }); //導出該路由 module.exports = router;
Router是可以嵌套的,如果你想划分的更細,一個子路由還以引用子子路由,不斷分下去。