tcbRouter
阅读原文时间:2023年07月10日阅读:1

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)