云开发定时触发器_python抢手机脚本

云开发定时触发器_python抢手机脚本你也在做微信云开发?你也要使用事件触发器实现一些业务逻辑?你也发现微信开发文档屁都没有一个?那你来看看吧

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

微信开发文档对这个部分的使用资料很少,一个demo都没有,全靠开发者去尝试,下面跟随我的脚步,看看我是怎么试出来的吧。

一、在哪用

1.点击云开发:
在这里插入图片描述
2.点击“设置”->“其他设置”

在这里插入图片描述
3.往下拉
在这里插入图片描述
4.点击添加
在这里插入图片描述

二、怎么用

在这里插入图片描述
看这个图大致可以看懂,创建一个触发器,填写名称和描述之后,可以指定在一个集合上发生的某个操作(插入,删除,更新),可以指定某些字段满足某个条件的时候使用触发器。

像我们熟悉的mysql或者pg…一样,触发条件之后都会调用触发器函数,也就是上面执行动作。

重要的是触发器函数的编写。

这里执行动作可以设定触发频率,这个按照需求使用即可。

在这里插入图片描述

三、问题

触发器函数是当数据库集合满足条件时自动触发的,在做一些复杂的触发器业务逻辑的时候,我们需要知道是数据库的哪一条数据发生了改变。

举一个我遇到的业务逻辑:
背景:我们在做一个食品销售平台,现在做的部分是商家入驻到我们平台当中的模块,商家提交了自己商店的信息之后,我们工作人员需要审核商店的信息是否合法,这个时候有个isLegal的字段,当我们审核人员审核通过之后,通过cms将这个字段改为true,同时,我们要在鉴权集合当中给这个店主使用该商店的权限 (省流助手:我需要在isLegal字段被修改为true的那条数据上获取用户id还有商店的id加入到另外一个集合当中)

这个时候问题来了,我们怎么知道是哪条数据的isLegal被修改了,并且获取到该条数据的其他信息呢?

查文档?文档屁都没有一个

四、摸索

一个云函数主体就是这样:

exports.main = async (event, context) => { 
   
  //TODO
}

Jetbrains全家桶1年46,售后保障稳定

而我们调用云函数的参数一般都在event当中。
也就是说,我们应该看看,在触发器函数执行的时候,系统给它传了什么值。也就是event里面是什么。

很多人就想到了,直接console.log(event)不就行了,
但是云函数部署在云端,普通调用根本看不到console.log的值,就算是本地调试的时候,我们通过手动增删改来触发条件的时候也无法触发本地调试的时候的这个触发器函数。

这个时候,我们可以找一个集合,将event的值直接添加到该集合当中,即可看到event的值

也就是在触发器函数里写

await db.collection('test').add({ 
   data:event})

然后我们去手动触发触发器的条件。

到数据库里找这条数据

在这里插入图片描述
其他的字段都没什么意思,我们需要的是data字段的东西:
在这里插入图片描述
看到data里面的值,大家应该就知道这个触发器函数应该怎么写了。
RemovedFields:被移除的字段
dataType:触发这个条件的操作是什么类型的(add,update,delete)
doc:这里面是被修改的那条的数据的全部数据
docId:被修改的数据的_id(也就是doc里面的_id)
updatedFields:被更新的字段

我这里只是展示update的触发器的传入值,其他类型的操作读者有需要可以自行尝试。

五、关于cms的webhook

在这里插入图片描述
webhook的作用与触发器类似,读者也可以按照我这样的方式,去看看webhook的函数调用的时候event的值。

六、我对触发器函数文件夹的架构想法

先看我做的一个模块的触发器函数
文件夹:
在这里插入图片描述
一个模块的触发器可以分为多个类型的触发器(update,add,delete),我们在index.js当中根据event参数形式的值进行路由的分发:
index.js:

const update = require('./updateTriggers/index')
// 云函数入口函数
// 通关传入参数type进行路由选择
exports.main = async (event, context) => { 
   
  switch (event.data.dataType) { 
   
    case 'update':
      return await update.main(event.data,context)
  }
}

基于这个思想,
在类型下面还可以根据字段来进行路由的分发(我这里只是针对一个字段,针对多个字段也是按照这样的思想进行)
文件夹:
在这里插入图片描述
index.js

const licenceStatus = require('./licenceStatus/index')
// 云函数入口函数
// 通关传入参数type进行路由选择
exports.main = async (event, context) => { 
   
  for (let property in event.updatedFields) { 
   
    switch (property) { 
   
      case 'licenceStatus':
        return await licenceStatus.main(event, context)
    }
  }
}

而在一个字段还可以根据需求进行更细致的路由分发,这就是我的一点想法。

小结

做微信云开发最难受的的事情就是,官方给的资料极少,相关的博客更少,全靠自己一点一点试出来的,唉。
有什么没做好,希望能在评论区留言,或者私信我,感谢您的观看。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226895.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月22日 下午2:15
下一篇 2025年6月22日 下午2:43


相关推荐

  • 使用es6模板字符串嵌入变量,并实现循环「建议收藏」

    使用es6模板字符串嵌入变量,并实现循环「建议收藏」模板字符串支持嵌入变量,只需要将变量名写在${}之中。在模板字符串中,遍历数组,生成循环结构。letarr=[‘aaa’,’bbbb’,’c’,’dd’,’f’]lettemp=`<ul>${arr.map(item=>{return`<li>${item}</li>`}).join(”)}</ul>`console.log(temp);/*<ul><li>aa

    2022年8月21日
    13
  • 大数的阶乘算法

    大数的阶乘算法用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1,原来的数除以10,商数加前一位数的数值后存回前一位数的数组中,再将余数存回原来位数的数组中。例如求5!的值步骤一:1!=1位数1数组内容0     0     0     1步骤二:2!=2

    2022年7月24日
    8
  • 【linux命令】 tree命令

    【linux命令】 tree命令文章目录Tree命令安装方法一,yum安装方法二,源码安装Tree命令安装方法一,yum安装命令:yuminstalltree方法二,源码安装1.下载安装包,地址:http://mama.indstate.edu/users/ice/tree/2.解压安装1)Linux环境(CentOS6.5)下安装a.解压tree-1.7.0.tgz文件,命令:tar-zxvftree-1.7.0.tgzb.进入解压目录中,命令:cdtree-1.7.0      c.安装文件,命令:

    2022年7月24日
    11
  • uos访问windows共享打印机_Linux打印机安装命令

    uos访问windows共享打印机_Linux打印机安装命令Unraid安装CUPS实现共享打印和无线打印2020-11-2916:08:3451点赞486收藏51评论创作立场声明:个人瞎折腾,文中部分内容来自网络,本人并非专业人士,只是将个人的折腾经验分享给大家,如有错误请大家指正今年上半年买了一台高配蜗牛,蜗牛D的机箱、G5400的cpu、B365的板子,就开始了一系列的折腾,更换了8700tescpu,带pcie插槽的蜗牛C机箱,4口pci…

    2022年10月9日
    6
  • RISC架构和STM32哈弗架构

    RISC架构和STM32哈弗架构MSP430FR2433 用的是 RISC 架构 1 RISC 架构 RISC 架构作为一种精简指令集架构 区别于 CISC 架构 指令不定长 指令复杂 它主张简化编译器 在时间使用中 cpu80 的时间执行的指令都是 20 的指令集 如基本的算术逻辑运算 和跳转控制指令 太复杂的指令实无必要 以下内容来自 1CISC 和 RISC 的区别联系是什么 2 哈佛结构和冯 诺依曼结构的区别 无法显示用户名的博客 CSDN 博客 RISC 和 CISC 是目前设计制造微处理器的两种典型技术 在很多方面差异很大

    2026年3月19日
    2
  • 智谱AI语音交互新突破:GLM-4-Voice-9B量化版深度评测与本地化部署指南

    智谱AI语音交互新突破:GLM-4-Voice-9B量化版深度评测与本地化部署指南

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号