前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【融职培训】Web前端学习 第8章 egg基础教程2 路由

【融职培训】Web前端学习 第8章 egg基础教程2 路由

作者头像
学习猿地
发布2020-06-24 17:09:59
4340
发布2020-06-24 17:09:59
举报
文章被收录于专栏:学习猿地学习猿地学习猿地

一,路由简介

路由器主要用于描述请求URL和具体采取执行动作的对应Controller关系,框架约定了app/router.js文件用于统一所有路由规则。通过统一的配置,我们可以避免路由规则逻辑散落在多个地方,从而出现未知的冲突,集中在一起我们可以更方便的来查看分段的路由规则。

二,定义路由器

app/controller 目录下面实现

app/router.js 里面定义URL路由规则

这样就完成了一个最简单的Router定义,当用户执行 GET /,home.js这个里面的index方法就会执行。

三,修改路由

  1. 以下代码可以抛光定义了一个新的方法叫学生,
 1 “严格使用” ;
 2 
 3 const  Controller  =  require ('egg' )。控制器;
 4 
 5 类 HomeController  扩展 控制器 { 
 6   异步 索引() { 
 7     const  { ctx }  =  this ; 
 8     ctx 。身体 =  “嗨,蛋” ;
 9   }
10 
11   异步 学生() { 
12     这个。ctx 。body  =  “嗨,学生们” 
13   } 
14 }
15 
16 模块。出口 =  HomeController ;
  1. 路由的修改为新的方法设置一个路由器,可以发现当路径访问/ students时,页面显示hi,students
 1 “严格使用” ;
 2 
 3 / ** 
 4 * @param { Egg.Application } app-egg应用程序
 5 * / 
 6 //app/router.js 
 7 模块。出口 =  应用 =>  { 
 8   常量 {路由器,控制器}  =  应用; 
 9   路由器。得到('/' , 控制器,家庭。指数);  // get方法,伸缩至controller / home.js文件中的index方法
10   router 。得到('/学生, 控制器。回家。学生);  // get方法,加速至controller / home.js文件中的students方法
11 } ;

四,设置路由参数

参数获取

查询字符串方式

 1 // app / router.js 
 2 模块。出口 =  应用 =>  { 
 3   应用。路由器。得到('/搜索' , 应用程序。控制器。搜索。指数); 
 4 } ;
 5 
 6 // app / controller / search.js 
 7 导出。index  =  异步 ctx  =>  { 
 8   ctx 。body  =  `search:$ { ctx 。查询。名字} ` ; 
 9 } ;
10 
11 //卷曲http://127.0.0.1:7001/search?name=egg

参数命名方式

 1 // app / router.js 
 2 模块。出口 =  应用 =>  { 
 3   应用。路由器。得到(“/用户/:ID /:名称” , 应用程序,控制器,用户,信息); 
 4 } ;
 5 
 6 // app / controller / user.js 
 7 导出。信息 =  异步 ctx  =>  { 
 8   ctx 。body  =  `user:$ { ctx 。参数。id },$ { ctx 。参数。名字} ` ; 
 9 } ;
10 
11 //卷曲http://127.0.0.1:7001/user/123/xiaoming

复杂参数的获取

路由里面也支持定义正则,可以更加灵活的获取参数:

 1 // app / router.js 
 2 模块。出口 =  应用 =>  { 
 3   应用。路由器。得到(/ ^ \ /包\ / ([ \ W - 。] + \ / [ \ W - 。] + )$ / , 应用。控制器。包。细节); 
 4 } ;
 5 
 6 // app / controller / package.js 
 7 导出。detail  =  async  ctx  =>  { 
 8   //如果请求URL被正则匹配,则可以按照顺序分组的顺序,从ctx.params中获取。// 
 9   按照下面的用户请求,`ctx.params [0]`的内容就是` egg / 1.0.0` 
10   ctx 。body  =  `package:$ { ctx 。参数[ 0 ] } ` ; 
11 } ;
12 
13 //卷曲http://127.0.0.1:7001/package/egg/1.0.0
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,路由简介
  • 二,定义路由器
  • 三,修改路由
  • 四,设置路由参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档