tcb-router基于 koa 風(fēng)格的小程序·云開(kāi)發(fā)云函數(shù)輕量級(jí)類路由庫(kù),主要用于優(yōu)化服務(wù)端函數(shù)處理邏輯
基于tcb-router 一個(gè)云函數(shù)可以分很多路由來(lái)處理業(yè)務(wù)環(huán)境,避免云函數(shù)不夠用的情況
安裝準(zhǔn)備
1、開(kāi)通云開(kāi)發(fā)
2、node.js
一、安裝node.js
必須安裝node.js,否則安裝tcb-router會(huì)出現(xiàn) npm 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件。
安裝完畢后測(cè)試下 輸入node -v npm -v 顯示版本即為成功安裝。

新建云函數(shù)4.jpg
一、新建云函數(shù).js

鼠標(biāo)右鍵新建node.js云函數(shù).jpg

輸入你要建立的云函數(shù)名稱.jpg

在外部終端窗口打開(kāi).jpg
輸入
npm install --save tcb-router執(zhí)行安裝,等待安裝完成

tcb-router安裝完成.jpg
此時(shí),云函數(shù)下會(huì)多出一個(gè)json文件 ,package-lock.json

新建云函數(shù)6.jpg
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
const TcbRouter = require('tcb-router'); //引用TcbRouter
cloud.init()
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const app = new TcbRouter({ event})
// app.use 表示該中間件會(huì)適用于所有的路由
app.use(async(ctx,next)=>{
ctx.data={}
ctx.data.openId=event.userInfo.openId
await next()
})
app.router(['user,school'],async(ctx,next)=>{
ctx.data.from='小程序云函數(shù)實(shí)戰(zhàn)'
await next()
})
app.router('user', async (ctx, next) => {
ctx.data.name = '白小白'
ctx.data.role ='小碼'
await next()
}, async(ctx)=>{
ctx.data.nickName = '簡(jiǎn)單'
ctx.body={code:0,date:ctx.data}
})
app.router('school', async (ctx, next) => {
ctx.data.name = '騰訊云學(xué)院'
ctx.data.url = 'tencent.com'
await next()
}, async (ctx) => {
ctx.data.nickName = '騰訊君'
ctx.body = { code: 0, date: ctx.data }
})
return app.serve();
}
下面調(diào)用云函數(shù)
user(){
wx.cloud.callFunction({
// 要調(diào)用的云函數(shù)名稱
name: "tcbRouter",
// 傳遞給云函數(shù)的參數(shù)
data: {
$url: "user", // 要調(diào)用的路由的路徑,傳入準(zhǔn)確路徑或者通配符*
}
}).then(res=>{
console.log(res)
})
},
school(){
wx.cloud.callFunction({
// 要調(diào)用的云函數(shù)名稱
name: "tcbRouter",
// 傳遞給云函數(shù)的參數(shù)
data: {
$url: "school", // 要調(diào)用的路由的路徑,傳入準(zhǔn)確路徑或者通配符*
}
}).then(res => {
console.log(res)
})
}