Skip to content
快速预览

express路由模块化

✍️ w 🕒 2023-06-06 08:22:52(a year ago) 🔗 B.NodeJS学习 服务端 express

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')
})

Released under the MIT License.