Appearance
express.Router是一个构造函数,用于创建可挂载的路由处理程序。它可以将路由处理程序分组,并将它们挂载到不同的路径上,从而使代码更加模块化和易于维护。使用express.Router可以轻松地创建多个路由处理程序,并将它们组织成一个完整的应用程序。因此express 中的 Router 是一个完整的中间件和路由系统,可以看做是一个小型的 app 对象
作用
模块化开发:express.Router()允许你将路由逻辑组织到单独的文件或模块中,使得项目的复杂度更低,可读性更高,同时便于维护和重构。
配合app.use 统一前缀
使用 app.use 统一访问前缀,进行分组管理
js
const express = require('express')
const app = express()
const homeApp = express()
// 访问使用时候需要 /my/home
homeApp.get('/home', (req, res) => {
res.send('home index')
})
// 增加前缀
app.use('/my', homeApp)
// 启动服务
app.listen(3000, () => {
console.log('server is running at port 3000')
})
案例
.
|-- app.js
|-- ip.txt
|-- package-lock.json
|-- package.json
`-- routes
`-- adminRouter.js
下面案例将路由进行分化然,将分化的路由注册会到全局中间件,express.Router 下创建的中间也叫路由中间件
- adminRouter.js
js
const express = require('express')
// 创建路由
const adminRouter = express.Router()
// 路由中间件
// adminRouter.use()
adminRouter.get('/home', (req, res) => {
res.send('admin index')
})
module.exports = adminRouter
- app.js
js
const express = require('express')
// 引入路由
const adminRouter = require('./routes/adminRouter')
const app = express()
app.use(adminRouter)
// 启动服务
app.listen(3000, () => {
console.log('server is running at port 3000')
})