十、Express 路由

         路由是Express框架中最重要的功能之一,在Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系,Express中的路由分别由请求的类型(GET/POST等)、请求的URL地址和处理函数三个部分组成的;

APP级别路由

路由的语法格式如下:

app.Method(path,handler);    // Method可以是get,post,put,delete等

        在上一篇当中就已经使用过监听 GET/POST 请求当中就使用过创建字符串形式路由路径匹配app路由;进行一下简单的回顾:

app.get('/',function(req,res){ })         // 路由匹配 /root
app.get('/user',function(req,res){})      // 路由匹配 /user

字符串模板的路由路径匹配app路由:

stu?book中的 ? 表示至多一个,可以是 /stbook 或 /stubook 都可以匹配到;

app.get('/stu?book',function(req,res){
    res.send('对学生开发的书籍');
})

stu+book中的 + 表示至少一个,可以是 /stuubook 或 /stuuuuubook (u最少一个);

app.get('/stubook',function(req,res){res.send('对学生开发的书籍');})
app.get('/stuubook',function(req,res){res.send('对学生开发的书籍');})
app.get('/stuuubook',function(req,res){res.send('对学生开发的书籍');})

 stu*book中的 * 表示stu和book之间可以有任意的字符;

stu(dent)?book 表示可以有括号内的字符也可以没有,如 /stubook 或 /studentbook 均可;


路由参数的路由路径:

        路由参数用来获取路由路径的值,该值会赋给req.params ;(路径参数必须由大小写字母,数字和下划线组成);

app.get('/stu/:s_Id/books/:b_Id',function(req,res){
    res.send(req.params);
})


不同请求方式的app路由:

GET请求 :

app.get('/',function(){
    res.send('GET');
})

POST请求:

app.post('/',function(req,res){
    res.send('POST');
})

ALL —— 任意http请求:

app.all('/',function(req,res){
    res.send('ALL');
})

        除了以上的这些还有以数组的形式或以组合形式的方式执行函数的app路由,其中需要带next参数,用于传递中间件的控制权,有的花会在中间的部分提及;app路由的内容就到此!


Router 级别路由

        上面的内容就是app路由,创建路由都是在项目的入口文件(app.js)中操作的,那么在实际开发中,这样的集中路由不利于开发维护,所以同样的需要进行模块化的管理,也就需要模块化的路由; 

        使用express生成项目中有一个routes文件夹,routes文件夹用于存放所有模块化路由文件,默认的有两个:index.js 和 users.js ;下面来进行建立router级别路由。

1. 创建路由模块对应的 .js 文件,使用express.Router() 方法创建可挂载的模块化路由;

// /routes/index.js文件
const express = require('express');
const router = express.Router();

2. 向路由上挂载具体的路由;

router.get('/user',function(req,res){
    res.send('user: admin');
})

3. 使用 module.exports 向外共享路由对象;

module.exports = router;

4. 注册路由模块;

// 入口文件app.js文件
var indexRouter = require('./routes/index');
app.use('/',indexRouter);

补充说明:可添加路由访问前缀 app.use('/路由访问前缀',indexRouter);

5. 测试运行;

         以上就是模块化路由的内容,在实际开发中对于不同的模块化内容当中可以将内容编写在各个.js文件中,然后将要使用的路由进行挂载向外共享注册使用比起使用app.js入口文件创建路由的方式是很不错的选择!Express 路由的内容就到此结束了,感谢大家的支持!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

灵魂学者

你的鼓励是我最大的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值