持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
Express-学习之路 03,路由器中间件
引言
本系列会以我的一个理解,来介绍并开始学习 Express。
中间会插入自己所联系到的 乱七八糟 的 知识点。
路由器中间件
我们在 app.js 中,可以写很多 应用程序中间件,例如 app.get 啊 或者 app.post 等等。
但是这样的话,我们这个文件中的代码,就很麻烦且难以维护。
所以我们将文件中的 应用程序中间件 中的相关路由信息,抽离出来,将其单独写一个文件,在 app.js 中直接引入。
创建一个名为 router.js 的文件来存放路由信息,成一个 路由中间件。
之后在 app.js 中进行引入即可。
这里先写一下 router.js
const express = require('express')
// 创建路由实例
const router = express.Router()
// 配置路由
router.get('/', (req, res) => {
res.send('hello Express')
})
router.get('/me', (req, res) => {
res.send('me')
})
// 导出路由
module.exports = router
可以注意到,我们获取路由实例 router 是通过 express.Router() 来进行创建的,最终是需要我们导出这个路由的实例,我们 app.js 中进行引入。
注意引入的顺序,路由器中间件 需要在 全局中间件 后面执行。
const express = require('express')
const config = require('./config')
const router = require('./router')
// 获取 express 的应用实例
const app = express()
// 全局中间件
app.use((req, res, next) => {
console.log('先执行我')
console.log('我是中间件1')
next()
})
// 挂载 路由器中间件
app.use(router)
app.listen(config.port, () => {
console.log(`http://localhost:${config.port}/`)
})
我们之后访问路由,可以看到也是可以正常的获取页面数据。
控制台也会打印相关信息
统一前缀路径
当然在我们使用 app.use 挂载 路由器中间件 时,也可以指定统一前缀路径
app.use('/home', router)
这样我们访问的路径名就是 /home 和 /home/me
总结
学习了 Express 的 路由器中间件,使我们 app.js 中的文件更加简洁。