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

本文详细介绍了路由的基本概念,如何在app/router.js中定义路由规则,以及如何通过修改路由实现新方法的调用。同时,深入探讨了参数的获取方式,包括查询字符串、参数命名和复杂参数的正则匹配。

一,路由简介

路由器主要用于描述请求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

 

 

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

本系统旨在构建一套面向高等院校的综合性教务管理平台,涵盖学生、教师及教务处三个核心角色的业务需求。系统设计着重于实现教学流程的规范化与数据处理的自动化,以提升日常教学管理工作的效率与准确性。 在面向学生的功能模块中,系统提供了课程选修服务,学生可依据培养方案选择相应课程,并生成个人专属的课表。成绩查询功能支持学生查阅个人各科目成绩,同时系统可自动计算并展示该课程的全班最高分、平均分、最低分以及学生在班级内的成绩排名。 教师端功能主要围绕课程与成绩管理展开。教师可发起课程设置申请,提交包括课程编码、课程名称、学分学时、课程概述在内的新课程信息,亦可对已开设课程的信息进行更新或撤销。在课程管理方面,教师具备录入所授课程期末考试成绩的权限,并可导出选修该课程的学生名单。 教务处作为管理中枢,拥有课程审批与教学统筹两大核心能。课程设置审批模块负责处理教师提交的课程申请,管理员可根据教学计划与资源情况进行审核批复。教学安排模块则负责全局管控,包括管理所有学生的选课最终结果、生成包含学号、姓名、课程及成绩的正式成绩单,并能基于选课与成绩数据,统计各门课程的实际选课人数、最高分、最低分、平均分以及成绩合格的学生数量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值