1.express中的路由

其实路由就是映射关系,在前面的学习中,我们给不同的请求方式,不同的url请求地址设置了各自的处理函数,这就是express中的路由概念,即请求和处理函数之间的映射关系。
image.png
其中 METHOD 就是网络请求的方式,其取值可以有:

  • all
  • get
  • post
  • put
  • delete
  • options
  • head
  • patch
  • trace
  • connect
  • copy
  • purge
  • lock
  • unlock
  • mkcol
  • move
  • propfind
  • report

    路由的匹配过程

    image.png

    2.路由的使用

    1-最简单的使用(很少用,不专业)

    就是直接用app对象来设置路由,和之前学习的一样。
    image.png
    但是这样会导致一个问题,就是一旦路由越来越多就会造成文件越来越大,所以我们一般不会把路由直接挂载的app对象上

2-模块化路由(常用,专业,模块化)

image.png
看到这个步骤,学习过 vue-router 的应该都觉得有点眼熟吧,好像vue中也是这样用模块化的方式处理路由的,而且步骤还差不多,看来vue-router中也有借鉴express处理路由的方式,学习了模块化的思想,那路或多。

具体实现

  1. // 这是路由模块 src/router.js
  2. // 1.导入 express
  3. const express = require("express")
  4. // 2.创建路由对象
  5. const router = express.Router()
  6. // 3.挂载具体的路由
  7. router.get('/', (req, res) => {
  8. // get请求用于获取信息(网页,静态资源,数据)
  9. res.send('获取首页')
  10. })
  11. router.post('/add', (req, res) => {
  12. // post请求用于向服务器提交一个修改(增删改查)
  13. res.send('添加一个新的条目')
  14. })
  15. // 4.向外导出路由对象
  16. module.exports = router
  1. // 这是app实例
  2. // 普通的路由就是直接挂载到app对象上的,但这会导致文件过大,所以我们使用模块化路由的方式
  3. const express = require('express')
  4. const app = express()
  5. // 1.导入路由模块
  6. const router = require('./router')
  7. // 2.注册路由模块
  8. app.use(router)
  9. // 注意:app.use() 函数的作用,就是来注册全局中间件的
  10. app.listen(80, () => {
  11. console.log('服务器已启动');
  12. })

现在我们再来看看vueRouter的处理方式,你会惊奇的发现,几乎一摸一样。

  1. // router/index.js
  2. // 1.导入vue-router
  3. import { createRouter,createWebHistory } from 'vue'
  4. // 2.创建路由对象
  5. const router = createRouter({
  6. routes: [
  7. // 3.具体的路由表...
  8. ],
  9. history: createWebHistory()
  10. })
  11. // 4.向外导出路由对象
  12. export default router
  1. // main.js
  2. import { createApp } from 'vue'
  3. const app = createApp()
  4. // 1.导入路由模块
  5. import router from '@/router/index.js'
  6. // 2.注册路由模块
  7. app.use(router)

3.为路由模块添加统一前缀

image.png