Express-学习之路 03,路由器中间件

198 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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}/`)
})

我们之后访问路由,可以看到也是可以正常的获取页面数据。

image.png

image.png

控制台也会打印相关信息

image.png

统一前缀路径

当然在我们使用 app.use 挂载 路由器中间件 时,也可以指定统一前缀路径

app.use('/home', router)

这样我们访问的路径名就是 /home/home/me

总结

学习了 Express路由器中间件,使我们 app.js 中的文件更加简洁。