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. opencv旋转图像,90度标准旋转

    摘自opencv 源代码 void rotate(InputArray _src, OutputArray _dst, int rotateMode) { CV_Assert(_src.dims() ...

  2. (day44)前端、HTTP、HTML

    目录 一.什么是前端 二.web服务 (一)流程 (二)请求方式 (1)get请求 (2)post请求 三.HTTP协议 (一)什么是HTTP协议 (二)四大特性 (三)数据格式 (1)请求格式 (2 ...

  3. 洛谷 P1182 数列分段 Section II

    洛谷 P1182 数列分段 Section II 洛谷传送门 题目描述 对于给定的一个长度为N的正整数数列A-iA−i,现要将其分成M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. ...

  4. Spring Cloud微服务安全实战_4-5_搭建OAuth2资源服务器

    上一篇搭建了一个OAuth2认证服务器,可以生成token,这篇来改造下之前的订单微服务,使其能够认这个token令牌. 本篇针对订单服务要做三件事: 1,要让他知道自己是资源服务器,他知道这件事后, ...

  5. [TJOI2019]唱,跳,rap,篮球(生成函数,组合数学,NTT)

    算是补了个万年大坑了吧. 根据 wwj 的题解(最准确),设一个方案 \(S\)(不一定合法)的鸡你太美组数为 \(w(S)\). 答案就是 \(\sum\limits_{S}[w(S)=0]\). ...

  6. [BJOI2019]勘破神机(第一类斯特林数,斐波那契数列)

    真的是好题,只不过强行多合一有点过分了…… 题目大意: $T$ 组数据.每个测试点中 $m$ 相同. 对于每组数据,给定 $l,r,k$,请求出 $\dfrac{1}{r-l+1}\sum\limit ...

  7. [LeetCode] 395. Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  8. [LeetCode] 6. ZigZag Conversion 之字型转换字符串

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  9. scss 入门基础

    在一个项目中,样式是必不可少的一部分,而对于一个完整的项目来说是有个基准色调的.在项目需求变化不大的情况下,可以直接在css中写这些颜色值之类的东西.但是如果遇到一个朝令夕改的领导或者甲方,那会变得相 ...

  10. django实战(三)--删除和批量删除

    上一节我们完成了带分页的模糊查询,本节我们继续删除操作. 同样的,先给出各个模块的代码(上一节的就不在贴出了):urls.py path('curd/delete/',views.curd_delet ...