安装tcbRouter
- gitHub中搜索tcb-Router,找到使用方法:npm install --save tcb-router
- 在使用tcbRouter的云函数文件夹中右键选择在终端打开输入并执行 npm install --save tcb-router
- 安装成功以后,在package.json文件中就会出现tcb-router依赖信息
使用tcbRouter
在云函数中使用require加载模块,模块名与package.json中的保持一致。
const tcbRouter=require('tcb-router')
在云函数中创建tcbRouter对象的同时,写上返回语句,再写业务处理代码
// 云函数入口函数
exports.main = async (event, context) => {
//在创建 tcbRouter对象时传递event
const app=new tcbRouter({event})
//此句必须有
return app.serve()
}
编写全局中间件处理公共逻辑,使用next关联每个中间件
// 云函数入口函数
exports.main = async (event, context) => {
//在创建 tcbRouter对象时传递event
const app=new tcbRouter({event})
//全局中间件处理公共逻辑
app.use(async (ctx,next)=>{
// 往小程序端返回值使用data,先定义空对象
ctx.data={}
ctx.data.openId=event.userInfo.openId
// 通过next把每个中间件关联起来
await next()
})
//此句必须有
return app.serve()
}
编写私用中间件
// 云函数入口函数
exports.main = async (event, context) => {
//在创建 tcbRouter对象时传递event
const app=new tcbRouter({event})
//全局中间件处理公共逻辑
app.use(async (ctx,next)=>{
// 往小程序端返回值使用data,先定义空对象
ctx.data={}
ctx.data.openId=event.userInfo.openId
// 通过next把每个中间件关联起来
await next()
})
//处理私有业务逻辑,路由名字为music
app.router('music',async (ctx,next)=>{
ctx.data.musicName='数鸭子'
// 业务逻辑处理完可以进入下一个中间件,直接用逗号分隔
await next()
},async (ctx,next)=>{
ctx.data.musicType='儿歌'
//业务逻辑处理完毕返回data值
ctx.body={
data:ctx.data
}
})
//处理私有业务逻辑,路由名字为movie
app.router('movie',async (ctx,next)=>{
ctx.data.movieName='毒龙 '
// 业务逻辑处理完可以进入下一个中间件,直接用逗号分隔
await next()
},async (ctx,next)=>{
ctx.data.movieType='警匪片'
//业务逻辑处理完毕返回data值
ctx.body={
data:ctx.data
}
})
//此句必须有
return app.serve()
}
tcbRouter云函数的调用
getMusicInfo(){
wx.cloud.callFunction({
name:'tcbRouter',
data:{
//在data中通过$url调用music路由
$url:'music'
}
}).then(res=>{
console.log(res)
})
},
getMoiveInfo(){
wx.cloud.callFunction({
name:'tcbRouter',
data:{
$url:'movie'
}
}).then(res=>{
console.log(res)
})
},