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

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

作者: lmonkey_01 | 来源:发表于2020-06-24 11:11 被阅读0次

一,路由简介

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

二,定义路由器

app/controller 目录下面实现

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

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

三,修改路由

以下代码可以抛光定义了一个新的方法叫学生,

1“严格使用” ; 2 3const  Controller  =  require ('egg' )。控制器; 4 5类 HomeController  扩展 控制器 {  6  异步 索引() {  7const  { ctx }  =this ;  8ctx 。身体 =  “嗨,蛋” ; 9  }1011  异步 学生() { 12这个。ctx 。body  =  “嗨,学生们” 13  } 14}1516模块。出口 =  HomeController ;

路由的修改为新的方法设置一个路由器,可以发现当路径访问/ 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方法10router 。得到('/学生, 控制器。回家。学生);  // get方法,加速至controller / home.js文件中的students方法11} ;

四,设置路由参数

参数获取

查询字符串方式

1// app / router.js  2模块。出口 =  应用 =>  {  3应用。路由器。得到('/搜索' , 应用程序。控制器。搜索。指数);  4} ; 5 6// app / controller / search.js  7导出。index  =  异步 ctx  =>  {  8ctx 。body  =  `search:$ { ctx 。查询。名字} ` ;  9} ;1011//卷曲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  =>  {  8ctx 。body  =  `user:$ { ctx 。参数。id },$ { ctx 。参数。名字} ` ;  9} ;1011//卷曲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` 10ctx 。body  =  `package:$ { ctx 。参数[ 0 ] } ` ; 11} ;1213//卷曲http://127.0.0.1:7001/package/egg/1.0.0

【融职教育】在工作中学习,在学习中工作

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/lzqrfktx.html