1、什么是路由
【解释】: 广义来说,路由就是一种映射关系。
【生活案例解释】:
2、Express中的路由
【解释】: 路由指的是客户端的请求与服务器处理函数之间的映射关系。
【语法格式】:
app.METHOD(PATH ,HANDLER)
【案例】:
const express = require('express')
const app = express()
// 挂载路由
app.get('/', (req, res) => {
res.send('hello world!!')
})
app.post('/', (req, res) => {
res.send('Post Request')
})
app.listen(80, () => {
console.log('express running at http://127.0.0.1');
})
3、路由匹配过程
【解释】: 每当一个请求到达服务器之后,需要先经过路由的匹配,只有匹配成功之后,才会调用对应的处理函数。
【图解】:
【注意事项】:
- 按照定义的先后顺序进行匹配
- 请求类型和请求的URL同时匹配,才会调用对应的处理函数
4、路由的使用
1、基本使用
【解释】: 在 Express 中使用路由最简单的方式,就是把路由挂载到 app 上
【代码示例】:
const express = require('express')
const app = express()
// 挂载路由
app.get('/', (req, res) => {
res.send('hello world!!')
})
app.post('/', (req, res) => {
res.send('Post Request')
})
app.listen(80, () => {
console.log('express running at http://127.0.0.1');
})
2、模块化路由
【创建步骤】:
- 创建对应的路由js文件
- 调用express.Router()函数创建路由对象
- 向路由对象上挂载具体的路由
- 使用moudle.exports向外共享路由
- 使用app.use()函数注册路由
【代码案例】:
- 路由user.js文件
//1、导入express
const express = require('express')
//2、创建路由对象
const router = express.Router()
//3、定义具体的路由
router.get('/user', (req,res)=>{
res.send('Get User List!!!')
})
router.post('/User/add', (req,res)=>{
res.send('Add new user!!!')
})
//4、向外导出路由
module.exports=router
- 注册并使用路由
const userRouter = require('./user.js')
//使用app.use()注册路由模块
app.use(userRouter)
3、路由模块添加前缀
【演示】:
const userRouter = require('./user.js')
//使用app.use()注册路由模块
app.use('/api', userRouter)