背景:
一个用户在一个云环境中只能创建50个云函数,之前是20个,更少。
比如我们要开发一个项目,当我们要获取A数据的时候可能要创建一个云函数,要获取B数据的时候又要创建一个云函数。。。。随着业务的增多,创建的对应的云函数数目越来越多,50个可能不够用,而且这种做法也很冗杂。
所以希望把相似的请求归类到同一个云函数处理,比如我们把获取音乐信息和获取电影信息都在同一个云函数里实现,从而避免创建过多云函数的情况。
要实现这一功能就要用到一个第三方库——tcb-router 一个koa风格的云函数路由库。
koa洋葱模型
koa框架采用了【中间件】的形式,中间件可以介入请求和相应的处理,可以理解是一个轻量级的模块,或者在我们的代码当中是一个函数形式。中间件可以负责一个特定的功能,通过一个next
函数把每个中间件之间建立关系。
什么是【洋葱模型】?
简单的理解就如上面两张图所表示的那样。
tcbRouter云函数
这里我通过一个例子来说明一下tcb-router的用法。
我们实现一个功能:把获取音乐信息和获取电影信息都在同一个云函数里实现,两者都要获取用户openid
并且获取各自的信息,从而避免创建多个云函数的情况。
创建云函数tcbRouter
👇
在tcbRouter云函数的目录下安装tcb-router依赖👇
1 | npm install --save tcb-router |
云函数tcbRouter
1 | // 云函数入口文件 |
小程序端调用tcbRouter函数👇
1 | //demo.js |
上面这段代码两个方法实际上调用的都是同一个云函数tcbRouter,但实现了不同的功能。
为了更加直观的体现【洋葱模型】这一概念在该例子上的应用,我们可以在云开发控制台的云函数运行日志中查看打印的日志👇