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. python27期day12:推导式、内置函数、高阶函数、匿名函数、作业题

    1.推导式:做一些有规律的数据结构 列表推导式: 普通循环模式: [加工后的变量 for 循环] 示例一:print([i for i in range(1,51)]) 结果:[1, 2, 3, 4, ...

  2. 每天一道Rust-LeetCode(2019-06-04)

    每天一道Rust-LeetCode(2019-06-04) 最长回文子串 坚持每天一道题,刷题学习Rust. 原题 题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度 ...

  3. win10经常无法复制粘贴

    两种方法尝试一下: 1. 在c:\windows\system32 目录下新建文件夹,命名为clip 2. 因为有道词典会监控并占用你的剪贴板,请尝试关闭有道词典的[取词]和[划词]功能,如果还不行就 ...

  4. tornado模板的使用

    一. 配置模板路径 settings中使用template_path来指定模板的路径, 实例化服务对象时加载进去即可. 二. 模板的使用 1. 使用self.render()方法可返回指定的html页 ...

  5. 【转】TCP/IP协议——ARP详解

    本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第 ...

  6. Function.prototype.call.bind

    在JavaScript中借用方法 在JavaScript中,有时候需要在一个不同的对象上重用一个函数,而不是在定义它的对象或者原型中.通过使用call(),applay()和bind(),我们可以很方 ...

  7. Linux性能优化实战学习笔记:第三十二讲

    一.上节总结 专栏更新至今,四大基础模块的第三个模块——文件系统和磁盘 I/O 篇,我们就已经学完了.很开心你还没有掉队,仍然在积极学习思考和实践操作,并且热情地留言与讨论. 今天是性能优化的第四期. ...

  8. [LeetCode] 789. Escape The Ghosts 逃离鬼魂

    You are playing a simplified Pacman game. You start at the point (0, 0), and your destination is (ta ...

  9. NetCore 开发时中文编码转换出现异常

    在C#编程的时候难免会遇到需要转换编码的场合. 在Framwork中可以用System.Text.Encoding解决,但是到了core会发现,虽然也有这个东西,但几个关键的中文编码(比如GB2312 ...

  10. java常量池-字符串常量池、class常量池和运行时常量池

    原文链接:http://tangxman.github.io/2015/07/27/the-difference-of-java-string-pool/ 在java的内存分配中,经常听到很多关于常量 ...