在上一节中,我们封装好了如何定时获取微信小程序的access_token
这节我们来使用HTTP API触发云函数
我们先来看一下官方例子,触发微信小程序云函数需要什么条件
在知道需要传递哪些参数以后我们就可以开始编写后台了
首先在app.js里面安装koa-router
npm install koa-router
const Router = require('koa-router')
const router = new Router
//导入playlist
const playlist = require('./controller/playlist.js')
router.use('/playlist',playlist.routes())
app.use(router.routes())
app.use(router.allowedMethods())
我们在这个后台的后端采用的是MVC的模式
MVC模式 M 模型(一般和数据库和数据有关) V 视图 C 控制器
所以我们需要再根目录下创建一个controller文件,例子我需要穿件一个playlist.js的文件来获取我小程序云数据库里面的数据。完整的代码如下:
const Router = require('koa-router')
const router = new Router()
const getAccessToken = require('../utils/getAccessToken') //获取token
const ENV = '' //你的小程序云环境的id
const rp = require('request-promise')
//get post
router.get('/list', async (ctx, next) => {
const access_token = await getAccessToken()
//查询歌单列表
// console.log(access_token, typeof access_token)
const url = `https://api.weixin.qq.com/tcb/invokecloudfunction?access_token=${access_token}&env=${ENV}&name=music`
var options = {
method: 'POST',
uri: url,
body: {
//注意,云函数的每一个参数都不能忘
$url: 'playlist',
keyword: '',
start: 0,
count: 50
},
json: true // Automatically stringifies the body to JSON
};
ctx.body = await rp(options)
.then(res => {
// POST succeeded...
console.log(res)
return JSON.parse(res.resp_data).data
})
.catch(error => {
console.log(error)
});
})
module.exports = router
这样就编写好了,我们只需要在终端重启服务 node app.js
就可以了,然后在端口http://localhost:3000/playlist/list 即可以看到云数据库里面的数据了。