用Node搭建一个后台管理系统的后端—HTTP API触发云函数(三)

在上一节中,我们封装好了如何定时获取微信小程序的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 即可以看到云数据库里面的数据了。

发布了53 篇原创文章 · 获赞 59 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42268364/article/details/103271702