- 一個用戶在一個雲環境中只能創建50個雲函數
- 相似的請求歸類到同一個雲函數處理
- tcb-router是一個koa風格的雲函數路由庫
koa洋蔥模型
tcb-router:基於 koa 風格的小程序·雲開發雲函數輕量級類路由庫,主要用於優化服務端函數處理邏輯
雲函數端使用
新建tcbrouter雲函數
右鍵-在雲端中打開
安裝tcb-router:
npm install --save tcb-router
新建名爲tcbrouter的雲函數
在其js文件中添加如下代碼:
// 雲函數入口文件
const cloud = require('wx-server-sdk')
const TcbRouter = require('tcb-router')
cloud.init()
// 雲函數入口函數
exports.main = async(event, context) => {
const app = new TcbRouter({
event
})
app.use(async(ctx, next) => {
console.log('進入全局中間件')
ctx.data = {}
ctx.data.openId = event.userInfo.openId
await next()
console.log('退出全局中間件')
})
app.router('music', async(ctx, next) => {
console.log('進入音樂名稱中間件')
ctx.data.musicName = '光年之外'
await next()
console.log('退出音樂名稱中間件')
}, async(ctx, next) => {
console.log('進入音樂類型中間件')
ctx.data.musicType = '華語歌曲'
ctx.body = {
data: ctx.data
}
console.log('退出音樂類型中間件')
})
app.router('movie', async(ctx, next) => {
console.log('進入電影名稱中間件')
ctx.data.movieName = '肖申克的救贖'
await next()
console.log('退出電影名稱中間件')
}, async(ctx, next) => {
console.log('進入電影類型中間件')
ctx.data.movieType = '美國電影'
ctx.body = {
data: ctx.data
}
console.log('退出電影類型中間件')
})
return app.serve()
}
編寫完後,上傳雲函數。
demo.wxml中添加兩個按鈕
<button bind:tap="getMusicInfo">獲取音樂信息</button>
<button bind:tap="getMovieInfo">獲取電影信息</button>
demo.js中添加兩個方法
getMusicInfo() {
wx.cloud.callFunction({
name: 'tcbrouter',
data: {
$url: 'music'
},
}).then((res) => {
console.log(res)
})
},
getMovieInfo() {
wx.cloud.callFunction({
name: 'tcbrouter',
data: {
$url: 'movie'
}
}).then((res) => {
console.log(res)
})
},
點擊兩個按鈕,分別打印一下信息,說明路由設置成功
查看雲函數的日誌,如下圖: