首页 > 编程语言 >小程序云开发学习

小程序云开发学习

时间:2022-10-27 09:58:43浏览次数:75  
标签:触发器 const 函数 err 程序 学习 开发 定时

最近在学习云开发,于是将之前的小程序(接口服务基于koa2)用云开发做了重构,学以致用哈哈。欢迎各位一起讨论,学习~

部分功能截图:

  

功能介绍

  • 发现:banner(热点) + 热门比赛
  • 联赛:联赛列表 + 联赛详细信息
  • 比赛:图文直播 + 比赛详细数据
  • 好看:比赛视频、视频集锦等
  • 其它...

技术点

  • 接口服务:云开发全家桶(云函数+存储+云数据库+定时触发器+事件触发器+云调用)
  • 小程序端:原生开发,半屏小程序接入实践

项目结构

项目整体结构分: cloudfunctions和miniprogram两大部分,其中cloudfunctions是各个云函数,提供功能接口,部分是云函数定时任务、事件触发器;miniprogram是小程序部分的代码。如下图:

第三方服务

  • 接口服务:steamwebpai
  • 小程序:bilibili小程序(半屏嵌入)

云函数- CRUD篇

在云函数中通过调用数据库的增删查改API来完成对数据的CRUD,如下是一个查询比赛预告的操作:

const cloud = require('wx-server-sdk');
cloud.init();

const db = cloud.database();
const collection = db.collection("match-schedule");
const _ = db.command;

exports.main = async (event) => {
    try {
        const {
            limit = 10,
            skip = 0,
            league_id
        } = event;
        const timestamp = Date.now() / 1000;
        const whereObj = league_id ? {
            league_id,
            scheduled_time: _.gt(timestamp)
        } : {
            scheduled_time: _.gt(timestamp)
        };
        const result = await collection.where(whereObj).orderBy('scheduled_time', 'asc').skip(skip).limit(limit).get();
        return {
            code: 0,
            data: {
                list: result.data
            }
        }
    } catch (err) {
        console.log('getMatchSchedule err...', err)
        return {
            code: -1,
            msg: err
        }
    }
}

定时触发器

如果云函数需要定时 / 定期执行,也就是定时触发,我们可以使用云函数定时触发器。通过这个,我们可以实现一些定时任务,以达到获取实时数据的目的。例如在这个小程序中实现的定时任务有:定时请求steam web api获取进行中的比赛数据,定时请求第三方api接口获取比赛预告数据等。

事件触发器

提供针对事件变化来自动触发云函数的能力。例如集合文档的变更,存储资源的变更等。通过事件触发器,可以更加灵活的进行业务逻辑的开发。如下的同步联赛数据触发器:当集合leauge的sync_status字段=1(更新操作)时,将自动执行云函数syncLeagueData。

云调用

云调用是云开发提供的基于云函数使用小程序开放接口的能力。在云函数中使用云调用调用服务端接口无需换取 access_token,只要是在从小程序端触发的云函数中发起的云调用都经过微信自动鉴权。如下是一个在云函数调用图片内容安全接口(鉴黄)的例子:

const cloud = require('wx-server-sdk');

exports.main = async (event, context) => {
    const { imageBuffer } = event.params;
    try {
        const res = await cloud.openapi.security.imgSecCheck({
            media: {
                contentType: 'image/png',
                value: imageBuffer
            }
        });
        return {
            code: 0,
            data: res
        }
    } catch (err) {
        return {
            code: -1,
            msg: err
        }
    };
}

附言

篇幅所限,有兴趣的小伙伴可以点击进入我的个人主页(然后扫个人案例中的小程序码),或微信搜索 MatchBox 小程序,欢迎体验,交流讨论、建议等。

标签:触发器,const,函数,err,程序,学习,开发,定时
From: https://www.cnblogs.com/MyFlora/p/16831071.html

相关文章

  • 小程序图片安全检查
    借助临时CDN传递大数据到云函数实现图片安全检测最近在重构小程序恋爱小清单,在用云函数做图片的安全检测时报了一个错:cloud.callFunction:failError:dataexceedm......
  • Linux系统开机自启动jar包程序
    一、编写jenkins开机自启动脚本vim/etc/rc.d/init.d/jenkins.sh#!/bin/bashexportJAVA_HOME=/usr/lib/jvm/javaexportJRE_HOME=${JAVA_HOME}/jreexportCLAS......
  • 面向对象的程序设计
    1.创建大雁类并定义飞行方法classGeese:def__init__(self,beak,wing,claw):print("我是大雁类!我有以下特征:")print(beak)print(wing)......
  • 博奥智源公司之智能巡检机器人信息管理系统功能开发设计分享
    系统内容序号服务内容1机器人巡检管理2报表管理3访客管理4平台管理模块详细内容(一)内容:机器人巡检管理1.支持巡检点设置......
  • 20201318李兴昕第六章学习笔记
    第五章:定时器及时钟服务知识点归纳总结:本章讲述了信号和信号处理;介绍了信号和中断的统一处理,有助于从正确的角度看待信号;将信号视为进程中断,将进程从正常执行转移到......
  • 第二十八章 使用 CSP 进行基于标签的开发 - 运行时表达式
    第二十八章使用CSP进行基于标签的开发-运行时表达式运行时表达式CSP文档可能包含在提供页面时(即在运行时)在CSP服务器上运行的表达式。此类表达式使用#(expr)#......
  • Node原生开发Web服务器介绍
     1.  使用Node创建一个HTTP的服务器,并能够接收到客服端发来的请求获取到客服端具体的请求数据,并根据不同的请求数据进行处理将处理之后的结果,响应回客户端,并断......
  • Tauri-Vue3桌面端聊天室|tauri+vite3仿微信|tauri聊天程序EXE
    基于tauri+vue3.js+vite3跨桌面端仿微信聊天实例TauriVue3Chat。tauri-chat运用最新tauri+vue3+vite3+element-plus+v3layer等技术跨桌面端仿微信|QQ聊天程序EXE。基本实......
  • 【THM】Nmap Basic Port Scans(nmap基础端口扫描)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/nmap02介绍在之前的文章中,我们专注于使用Nmap发现在线主机,并且到目前为止,我们已经介绍了Nmap扫描的三个......
  • AIR32F103(二) Linux LibOpenCM3开发环境
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)LinuxLibOpenCM3开发环境Linux开发环境在Linux下和STM32F1xx的开发环境是一样的,可以使用gcc......