路由的配置和使用

路由

路由的功能:告诉你去哪,对于前端,主要是导向告诉浏览器应该去哪,对于后端,可以理解为一个子服务,一个路由就是一个小的服务(server/app),处理一个接口

配置和使用

/routes/xx.js

// 1. 创建路由
let router = express.Router(); 

//2 路由处理响应
router.响应API(地址, 处理函数)

//3. 导出路由
module.exports = router;

/app.js主服务

//安装路由
app.use('地址',router); 

/routes/xx.js

//子路由里安装路由 嵌套
router.use('地址',子router) //需要next 延续

//截获当前路由下的部分公共业务
router.all('*',当前router路由下的验证工作) //需要next 延续

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

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

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

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

操作代码如下:
主文件代码:

const express = require("express")
const app = express()
app.listen(3000)


app.all("*",(req,res,next)=>{
    req.title = "index.js"
    next()
})

//app.get("/api/a",require("./routes/a.js")) 报错!

//主入口上面通过安装路由
// app.use('地址',router); 
app.use("/api/a",require("./routes/a.js"))



app.get("/reg",(req,res)=>{
    console.log("reg===>",req.title)
    res.end()
})

子文件 a 代码:

// 1. 创建路由
let express = require("express")
let router = express.Router(); 


router.all("*",(req,res,next)=>{
    req.title = "a.js"
    console.log("-----进入a.js里面的all方法了-------")
    next()
})


//2 路由处理响应
// router.响应API(地址, 处理函数)
router.get("/",(req,res,next)=>{
    console.log("这是a.js文件里面的/api/a哦....")
    res.end()
})


//通过router.use方法来去注册子路由
//当我们浏览器访问/api/a/b的时候就会进入b.js里面的/所对应的回调函数 
router.use("/b",require("./b.js"))


// /api/a/c
router.get("/c",(req,res)=>{  //30行  返回json数据 前端
    console.log("这是a.js文件里面的/api/a/c哦....",req.title)
    res.end()
})




//3. 导出路由
module.exports = router;

子文件 b 代码:

let express = require("express")
//创建路由
let router = express.Router()


//可以通过router.all方法实现公共业务抽离
router.all("*",(req,res,next)=>{
    req.title = "b.js文件"
    console.log("-----被b.js里面的all方法拦截了哦----")
    next()
})

//路由的响应处理
router.get("/",(req,res,next)=>{
    console.log("这是b.js文件里面的/api/a/b哦....",req.title)
    res.end()
})

// /api/a/b/b1-1
router.get("/b1-1",(req,res,next)=>{
    console.log("这是b.js文件里面的/api/a/b/b1-1哦....",req.title)
    res.end()
})


router.get("/b1-2",(req,res,next)=>{
    console.log("这是b.js文件里面的/api/a/b/b1-2哦....",req.title)
    res.end()
})


//导出路由
module.exports = router
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别来…无恙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值