切换主题
九、Express路由
1、路由的概念
1、Express中的路由
在Express中,路由指的就是客户端的请求与服务器处理函数之间的映射关系
Expres中的路由分3部分组成,分别是请求的类型、请求的URI地址、处理函数
js
app.NETHOD(PATH,HANDLER)
- NETHOD代表请求类型
- PATH代表请求的URI地址
- HANDLE代表处理函数
2、Express中的路由的例子
js
//匹配GET请求,且请求URI为/
app.get('get',function(req,res)=>{
res.send('Hello world!')
})
//匹配POST请求,且请求URI为/
app.post('get',function(req,res)=>{
res.send('Got a POST request!')
})
3、路由匹配过程
注意:
- 按照定义的先后顺序进行匹配
- 请求类型和请求的URI同时匹配成功,才会调用对应的处理函数
2、路由的使用
1、最简单的用法
js
const express=require('express')
const app=express()
// 挂载路由
app.get('/',(req,res)=>{
res.send("get")
})
app.post('/',(req,res)=>{
res.send("post")
})
app.listen(80,()=>{
console.log("服务器启动了");
})
注意:不建议这样子写
2、模块化路由
为了方便对路由进行模块化的管理,Express不建议将路由直接挂载到app上,而是推荐将路由抽离为单独的模块
将路由抽离为单独模块的步骤如下:
- 创建路由模块对应的js文件
- 调用export.Router()函数创建路由对象
- 向路由对象上挂载具体的路由
- 使用module.export向外共享路由对象
- 使用app.use()函数注册路由模块
js
//router.js
// 获取express
const express = require('express')
// 获取router,创建实例
const router = express.Router();
// 创建路由
router.get('/user/list', (req, res) => {
res.send("user/list的get");
})
router.post('/user/add', (req, res) => {
res.send("user/add的post");
})
// 导出路由
module.exports = router;
js
//test.js
const express=require('express')
const app = express()
// 导入路由
const router=require('./router')
// 注册路由
app.use(router)
// 注意:app.use()函数的作用,就是来注册全局中间件
app.listen(80,()=>{
console.log("服务器启动了");
})
3、为路由模块添加前缀
类似于托管静态资源时,为静态资源统一挂载访问前缀一样
js
app.use("/api",router)