- 【融职培训】Web前端学习 第8章 egg基础教程2 路由
- 【融职培训】Web前端学习 第8章 egg基础教程1 Egg概述
- 【融职培训】Web前端学习 第8章 egg基础教程5 restf
- 【融职培训】Web前端学习 第8章 egg基础教程7 Nunju
- 【融职培训】Web前端学习 第8章 egg基础教程6 cooki
- 【融职培训】Web前端学习 第8章 egg基础教程4 seque
- 【融职培训】Web前端学习 第7章 Vue基础教程10 路由
- 【融职培训】Web前端学习 第8章 egg基础教程3 控制器
- 【融职培训】Web前端学习 第8章 egg基础教程8 学生列表管
- 【融职培训】Web前端学习 第3章 JavaScript基础教程
一,路由简介
路由器主要用于描述请求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
网友评论