Express路由使用

路由

  • 我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。
  • 对于前端,主要是告诉浏览器应该找到哪个接口
  • 对于后端,可以理解为一个个小的子服务,处理接口

routr 介绍

  • 首先要创建路由文件 /routes/xx.js
    在这里插入图片描述
  1. 创建路由 const router = express.Router()
  2. 路由处理响应 router.响应API(地址, 处理函数)
  3. 导出路由module.exports = router;
    app.js主服务
  4. 安装路由server.use('地址',router)
  • 子路由里安装路由 嵌套 router.use('地址',子router)
  • 截获当前路由下的部分公共业务 router.all('*',当前router路由下的验证工作) //需要next 延续

主路由的地址对应子路由的根

如:server.js :/api/a~~ a.js:/`

server.use("/api/a",require("./routes/a.js"))

在a.js文件里面的/就是对应的app.js里面的/api/a的地址

程序代码

在这里插入图片描述

index.js

// 创建一个服务器
const express=require('express')
const server=express()
//监听端口
server.listen(3000)

//截获当前路由下的部分公共业务
server.all('*',(req,res,next)=>{
    req.title='index.js'
    next()
})



//主入口安装路由
server.use('/api/a',require('./routes/a'))


server.get('/reg',(req,res)=>{
    res.send("reg "+req.title)//req.title  index.js
})

//这段代码如果放在这里,那么之前的req.title 都是undefined
/*server.all('*',(req,res,next)=>{
    req.title='index.js'
    next()
})*/


a.js

// 1.创建路由
const express=require('express')
const router=express.Router()

//截获当前路由下的部分公共业务



//2.路由处理响应   
//  相当于在响应接口/api/a   后面加路径

router.get('/',(req,res)=>{
    res.send('这是a.js文件里的/api/a '+req.title)//req.title  index.js
})

// 截取当前路由下的部分公共业务   与位置也有关系
//必须放在想要 截获  响应之前
router.all('*',(req,res,next)=>{
    req.title='a.js'
    next()
})


router.get('/b',(req,res)=>{
    res.send('这是a.js文件里的/api/a/b '+req.title)//req.title  a.js
})

//通过router.use的方法注册子路由
//当访问/apu/a/c  的时候  进入到c.js 里面  对应的回调函数
router.use('/c',require('./c'))


module.exports=router

b.js

//1.创建路由
const express=require('express')
const router=express.Router()

//截获当前路由下的部分公共业务

router.all('*',(req,res,next)=>{
    req.title='c.js'
    next()
})



// 2.路由处理响应
router.get('/',(req,res)=>{
    res.send('这是c.js文件里的/api/a/c '+req.title)//req.title  c.js
})

router.get('/d',(req,res)=>{
    res.send('这是c.js文件里的/api/a/c/d '+req.title)//req.title  c.js
})

router.get('/e',(req,res)=>{
    res.send('这是c.js文件里的/api/a/c/e '+req.title)//req.title  c.js
})


module.exports=router

运行

  • /reg
    在这里插入图片描述
  • /api/a
    在这里插入图片描述
  • /api/a/b
    在这里插入图片描述
  • /api/a/c
    在这里插入图片描述
  • /api/a/c/d
    在这里插入图片描述
  • /api/a/c/e
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值