05.Egg.js教程-Get请求和参数传递

Get请求的特点

通过URL来访问一个地址,比如http://127.0.0.1:7001,这种请求方式就是Get请求。Get请求也是我们最常用的请求方式。包括现在的扫码请求,其实也是变相的Get请求。

  • 优点:使用简单,清晰有条例。适合网站和对外App的使用。
  • 缺点:传递参数是有大小限制,安全性较差,不能完成重要数据的传递。

既有优点,又有缺点,所以就要根据具体的使用情况,而选择使用哪种请求方式。

自由传参模式

Get请求我个人把它分为两种传参模式,一种是自由传参模式。这种传参模式和最早的传参模式相同。传递的参数个数和名称没有具体明确定义,设置不限制你是否传递参数。使用起来非常的灵活,所以就叫做自由传参模式。

下面写一个符合资源传参的Controller方法。打开/app/controller/mybj.js文件,重新编写一个getGirl()的方法。

async getGirl(){
    const {ctx} = this;
    ctx.body = ctx.query;
}

这里的ctx.query就是获得传递的参数。写完后还需要到router.js文件下,增加路由后才可以访问。

打开/app/router.js文件。

router.get('/getGirl', controller.mybj.getGirl);

你通过浏览器访问,URL为[http://127.0.0.1:7001/getGirl?name=小红](http://127.0.0.1:7001/getGirl?name=%E5%B0%8F%E7%BA%A2),这时候页面就会显示传你传递的参数。

那如何体现自由呢,首先你可以不传递参数,只是页面什么都不显示了,只显示一个{ }。还可以传递多个参数,比如传递名字为小红,年龄为20岁, 页面就会完全的显示出来。

http://127.0.0.1:7001/getGirl?name=小红&age=20

自由传参模式

这时候是不是学程序还是挺有意思的,真的可以随便创造出一个女朋友出来。

严格传参模式

和自由传参模式对应的就是严格传参模式,也就是你传递的参数个数是固定的,你传递参数顺序是固定的,你传递的参数名称是固定的。

Get的严格传参模式需要配合router.js文件进行设置。例如设置一个getGirl2的路径,然后必须传递一个name的参数,就可以这样设置。

router.get('/getGirl2/:name', controller.mybj.getGirl2);

设置好路由后,再到/app/controller/mybj.js。编写一个getGirl2的方法就可以。

async getGirl2(){
    const {ctx} = this;
    ctx.body=ctx.params.name;
}

ctx.params是获取所有的传递参数,ctx.params.name是获取传递参数的name值。

这时候的访问URL不在是用?来开始传递参数了,而是直接用/ 左斜杠来传递。

http://127.0.0.1:7001/getGirl2/小红

严格传参模式

严格传参中的多参数传递

会了严格传参之后,再来看一下在严格模式下如何传递多个参数,比如我们再传递一个年龄=20岁.

路由配置页面就可以这样设置。

router.get('/getGirl2/:name/:age', controller.mybj.getGirl2);

然后再修改对应的getGirl2()方法,接受到姓名和年龄后,显示出来。这里就是完全动态的显示了。

async getGirl2(){
    const {ctx} = this;
    let name = ctx.params.name;
    let age = ctx.params.age;
    ctx.body='大哥你好,我是'+name+',今年'+age+'岁.欢迎光临红浪漫!';
}

这样的应用是不是越来越好了呢?现在程序就支持传递多个参数了。

总结:这篇文章,我们主要学习了Egg.js中的Get请求和传参方式,Get传参分为自由传参模式和严格传参模式。个人建议如果想让程序健壮性更强,可以多使用严格传参模式。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:
1. 本站所有文章教程及资源素材均来源于网络与用户分享或为本站原创,仅限用于学习和研究。
2. 如果内容损害你的权益请联系客服QQ:1642748312给予处理。
码云笔记 » 05.Egg.js教程-Get请求和参数传递

发表评论

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们