Express框架之后端路由

Express框架之后端路由

什么是后端路由?

  • 对每一个请求的分别处理就叫做后端路由。

什么是路由表?

  • express的路由表

    • express框架单独提供的API,不进行路由的处理,只是单独配置一张表;把配置好的表交给服务,让服务按照这个表的配置进行路由。
    • express这个对象身上有一个成员:Router,是一个函数,当这个函数执行的时候会返回一个空的路由表,我们可以对这张路由表进行路由配置,并将路由表挂载到服务上。
  • 代码演示:

    const express = require('express')
    const app = express()
    // 这里拿到的是一张空的路由表
    const router = express.Router()
    // 例如给路由表分别配置一个 get / post 请求的路由
    router
      .get('/a', (req, res) => { res.send('我是get请求的 /a 路由标识符')})
      .post('/a', (req, res) => { res.send('我是post请求的 /a 路由标识符')})
    app.listen(8080, () => { console.log(running at port 8080)})
    

模块化开发的方式配置路由

  • 使用模块化开发的方式,把路由配置单独分离出去。

  • 路由配置按照请求分类或按照业务逻辑分类,分离到route文件夹中,将配置后的路由表导出,在服务中导入,使用app.use()来将路由表挂载到服务上。

  • 代码演示:

    // 这里是分离出去的 users 路由表,这里创建出一个表就可以了
    const router = require('express').Router()
      router
      	.get('/a', (req, res) => { res.send('我是get请求的 /a 路由标识符')})
     // 导出一个路由表
     module.exports = router
    
    // 这里是网站服务,我们需要将分离出去配置后的表导入到这里来,并使用app.use将该路由表挂载到服务上
    const express = require('express')
    const app = express()
    
    // 将 users 路由表导入
    const usersRouter = require('./route/users')
    
    // 将路由表挂载到服务上
    app.use(usersRouter)
    app.listen(8080, () => { console,log(running at port 8080)})
    
  • 使用模块化开发的方式配置路由表,可以让我们的业务逻辑更加清晰,方便地管理和维护我们的代码;但是以上面这种方式挂载路由表会出现一个问题 ——

挂载路由表出现的问题:
  • 首先app.use 是有执行顺序的,当它挂载了多张路由表之后,就会出现后面的路由去前面的路由表空跑。
  • 所以当你需要挂载多个路由表,最好将其进行分类(即:创建一级路由),将不属于当前路由的请求不要进入。
  • 例如用户相关的路由,标识符以 /users 开头;商品相关的路由,标识符以 /goods 开头
  • 了解app.use()
    • app.use()的第一个参数是可选的,默认是 ‘*’ ,可以在这里写一个字符串,表示以这个字符串开头的标识符,使用第二个参数挂载的内容
  • 总结:使用app.use(‘users’, usersRouter) 来挂载路由表,当然这样的方式我们可以将它称为是users表的一级路由,usersRouter里的路由表配置为二级路由。

小怪留言:有些知识点比较少用到,忘记了不可怕,有空回来看看吖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值