tcb-router

基于koa风格的小程序·云开发云函数轻量级类路由库,主要用于优化服务端函数处理逻辑

安装

在云函数当前目录下安装:npm install --save tcb-router

 使用

const tcbRouter = require('tcb-router');
exports.main = async (event, context) => {
  const app = new tcbRouter({ event });  //event对象中包含了请求的所有参数(包括$url)   +     userInfo(  appId(小程序)+openId(用户的)   )
 
  //路由1--detail ($url=='detail'
    //获取博客详情
    app.router('detail', async (ctx, next)=>{
      //可获取请求中的参数
      let blogId = event.blogId;
      //通过赋值给ctx.body来返回响应结果

       ctx.body = XXXX;
    })
 
  //路由2
  。。。
 
  //路由3
  。。。
  return app.serve(); // 必须以此句结束
})

event对象

event 指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。

总结:event对象中包含了请求的所有参数   +   userInfo(  appId(小程序)+ openId(用户的)   )

测试:

客户端代码:

//获取博客列表

_loadBlogList(start = 0){
  // 显示加载提示
  wx.showLoading({
    title: '加载中',
  })
  wx.cloud.callFunction({
    name:'blog',//云函数目录名称
  data:{
    keyword,
    $url:'list',
    start: start,
    count:10
  }
  }).then((res)=>{
    console.log("_loadBlogList suc", res)
    this.setData({
    blogList:this.data.blogList.concat(res.result)
  })
  // 隐藏加载提示
  wx.hideLoading()
  }).catch((err)=>{
    // 隐藏加载提示
    console.error(err)
  })
}
 
云函数:

event, { '$url': 'list',

count: 10,

keyword: '',

start: 0,

userInfo:

{ appId: '。。。',

openId: '。。。' } }

//对比发现,event对象中包含了请求的所有参数   +   userInfo(  appId(小程序)+openId(用户的)   )

context对象

context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。

context, { callbackWaitsForEmptyEventLoop: [Getter/Setter],

done: [Function: done],

succeed: [Function: succeed],

fail: [Function: fail],

getRemainingTimeInMillis: [Function: getRemainingTimeInMillis],

memory_limit_in_mb: 256,//字节限制

time_limit_in_ms: 3000,//时间限制

request_id: 'eaf169f6-16ef-11ea-9cfd-5254002fa145',//请求id

environ: xxx(内容有点长),//环境

function_version: '$LATEST',//云函数版本

function_name: 'blog',//云函数名称

namespace: 'env1-bxl-1' }//域名空间(环境id)

tcbRouter的更多相关文章

  1. 分享使用tcb-router路由开发的云函数短信平台SDK

    上篇文章我们分享了如何使用纯的云函数开发的榛子短信短信(http://smsow.zhenzikj.com)SDK,由于微信对于未付费云函数个数的限制,这种方法存在缺陷,经过改进,使用tcb-rout ...

  2. 微信小程序云开发-从0打造云音乐全栈小程序

    第1章 首门小程序“云开发”课程,你值得学习本章主要介绍什么是小程序云开发以及学习云开发的重要性,并介绍项目的整体架构,真机演示项目功能,详细介绍整体课程安排.课程适用人群以及需要掌握的前置知识.通过 ...

  3. 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题

    先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...

随机推荐

  1. C语言之++和--

    #include<stdio.h> int main(void) { int a; a = ; printf("a++ = %d\n", a++); printf(&q ...

  2. Netty线程模型(五)

    Netty支持单线程.主线程模型.主从多线程模型. 我们在创建线程组的时候,如果不传递参数,则默认构建的线程组线程是CPU核心数量. 一.单线程模型 在ServerBootstrap调用方法group ...

  3. C++——二维vector初始化大小方法

    初始化二维vector,为r*c的vector,所有值为0.1.直接用初始化方法(刚开始没想到) vector<vector<int> > newOne(r, vector&l ...

  4. The Preliminary Contest for ICPC Asia Shanghai 2019 C. Triple

    [传送门] FFT第三题! 其实就是要求有多少三元组满足两短边之和大于等于第三边. 考虑容斥,就是枚举最长边,另外两个数组里有多少对边之和比它小,然后就是 $n^3$ 减去这个答案. 当 $n \le ...

  5. 组件注册-自定义TypeFilter指定过滤规则

    组件注册-自定义TypeFilter指定过滤规则 4.1 FilterType.ANNOTATION 按照注解方式 4.2 FilterType.ASSIGNABLE_TYPE 按照给定的类型 @Co ...

  6. 动态规划 | 保留重复元素的LCS 1045

    这题也可以用LIS求解.LIS解题报告:动态规划 | 对输入进行hash处理的LIS 1045 普通LCS是必须完全匹配的,所以状态转移方程式(末端匹配到时):dp[i][j]=dp[i-1][j-1 ...

  7. ORB-SLAM2初步

    一.ORB-SLAM简介 最近开始入坑SLAM,经过简单调研,各位大咖认为,目前最优秀的视觉SLAM系统是ORB-SLAM2,因此对ORB-SLAM2进行了学习. ORB-SLAM2是2015年提出的 ...

  8. A1033 To Fill or Not to Fill (25 分)

    一.技术总结 是贪心算法的题目,题目主要考虑的问题有几个,是否会在第一个加油站的最近距离大于0,如果是这样那么直接输出答案,因为初始油箱没有汽油: 第二个是如何选定加油站,如果在可到达距离范围类,我们 ...

  9. MySQL实战45讲学习笔记:第二十八讲

    一.读写分离架构 在上一篇文章中,我和你介绍了一主多从的结构以及切换流程.今天我们就继续聊聊一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题. 我们在上一篇文章中提到的一主多从 ...

  10. 原生/CM系列网络叹号问题

    网络叹号问题: 原因:某墙屏蔽了谷歌,而原生安卓是利用谷歌的服务器来测试网络是否通畅的 解决方案:修改网络测试的服务器地址 方案来源:https://www.noisyfox.io/android-c ...