小程序云开发之云函数篇

这里不讲解如何开通云服务,这里我们直接从如何新建云函数开始讲

云函数部分

在这里插入图片描述
小程序部分
在这里插入图片描述
在这里插入图片描述

云函数链接并操作云数据库

其实具体如何使用 微信文档已经介绍的很清楚了 一些基本的增删改查这里就不做讲解,这里就讲如何链接云数据库并且使用云数据库提供的事务操作
![在这里插入图片描述](https://img-blog.csdnimg.cn/13c9c672570b4cb8aee8770281c5bf0e.png

在这里插入图片描述
该云函数整体代码如下

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database({
  // 该参数从 wx-server-sdk 1.7.0 开始支持,默认为 true,指定 false 后可使得 doc.get 在找不到记录时不抛出异常
  throwOnNotFound: false,
})
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    const result = await db.runTransaction(async transaction => {
      var aaaRes = await transaction.collection('user').doc(event.sendId).get()
      var bbbRes = await transaction.collection('user').doc(event.reciveId).get()

      if (aaaRes.data && bbbRes.data) {
        const updateAAARes = await transaction.collection('user').doc(event.sendId).update({
          data: {
            balance: _.inc(-10)
          }
        })
        
        const updateBBBRes = await transaction.collection('user').doc(event.reciveId).update({
          data: {
            balance: _.inc(10)
          }
        })
        aaaRes=   await transaction.collection('user').doc(event.sendId).get()
        //逻辑执行完毕  事务内部必须要返回 返回就代表该段事务执行完毕 
        return { 
        }
      } else {
        // 会作为 runTransaction reject 的结果出去
        await transaction.rollback()
      }
    })
    //下面的return 时返回给小程序端
    return {
      success: true
    }
  } catch (e) {
    console.error(`transaction error`, e)

    return {
      success: false,
      error: e
    }
  }

 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值