首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【小程序云开发】云函数路由的高效配置

【小程序云开发】云函数路由的高效配置

作者头像
许坏
发布2019-07-14 13:33:58
1.6K0
发布2019-07-14 13:33:58
举报
文章被收录于专栏:宅机吧宅机吧

在小程序开发工具中,启动云开发默认模板,提供的云函数办法是一个请求对应一个云函数,比如说,我要获取用户登录数据,就添加一个login函数,然后前端就请求这个login获取,如果现在我要通过云函数删除我的使用用户,是不是就得重新再建一个函数如delete,然后这个delete就用于处理前端提交的用户删除任务,如果到时候任务多了,不就需要创建很多个云函数了吗?麻烦,所以我们想办法一个函数处理多个任务,这就需要使用云函数路由了。

最起先我的想法是用switch,在云函数中对请求参数加一个判断,然后再进行分别请求,例如:

exports.main = async (event, context) => {switch (event.action) {case 'getFunction1': {return getFunction1(event)    }    case 'getFunction2': {      return getFunction2(event)    }    case 'getFunction3': {      return getFunction3(event)    }    case 'getFunction4': {      return getFunction4(event)    }    case 'getFunction5': {      return getFunction5(event)    }default: break  }}

理论和实际操作证明,这种办法确实可行,但是写着写着,我感觉有点不是很丝滑,不是很流畅,没有写laravel路由配置的那么自然,所以就开始想想有没有其它办法,百度了一下,找到了一个好东西:tcb-router

Github地址:

https://github.com/TencentCloudBase/tcb-router

使用说明上面都有介绍,简单举一个目前小程序博客系统上面的例子:

// 云函数入口文件var cloud = require('wx-server-sdk');var TcbRouter = require('tcb-router');
cloud.init();const db = cloud.database();exports.main = (event, context) => {  const app = new TcbRouter({ event });//登录验证openid  app.router('login', async (ctx) => {const wxContext = cloud.getWXContext();    ctx.body={      openid: wxContext.OPENID    }  });//【后台】分类管理--删除  app.router('admin/kind/delete', async (ctx) => {try {return await db.collection('kind').doc(event.kind._id).remove()    } catch (e) {      console.error(e)    }  });  return app.serve();}

对应的前端代码:

const db = wx.cloud.database();//获取openidlogin(){    wx.cloud.callFunction({name: 'admin',data: {$url: "login",        },complete: res => {          console.log(res);        }    })},//删除分类del(e) {var that = this;var kind = e.currentTarget.dataset.kind;    wx.cloud.callFunction({name: "admin",data: {$url: "admin/kind/delete",kind: kind,      },complete: res => {        that.getList();      }    })  },  

具体的参考云开发小程序的云函数逻辑

https://github.com/xuhuai66/wxapp-blo

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅机吧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档