微信小程序云函数使用方法

微信小程序云函数使用方法

1、如何新建一个云函数

在微信开发者工具中打开云项目,cloudFunction文件夹用来存放云函数,系统默认提供了名为login的云函数,我们可以在index.js里面看到函数的最后可以返回用户的openid等内容,现在我们建立一个自己的云函数,点击cloudFunction文件夹,右键“新建node.js云函数”,命名后会直接上传更新云函数,打开“云开发控制台”,点击“云函数”可以看到函数已经上传成功

2、云函数编写以及发布

我们在新建的云函数文件夹下可以看到index.js和package.json两个文件,package.json文件暂时不用,在index.js中编写相关逻辑代码

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

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

这是系统默认提供的代码,仔细一看跟系统自带的login函数的index.js文件一模一样,现在假设我们要对集合进行增删改查,如何编写代码:

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

cloud.init(
  {
    env: 'ty520-k6iez'   //这里填你设置的环境ID
    //环境ID的查看在“云开发控制台”->“设置”->“环境设置”中查看
  }
)
const db = cloud.database()   
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
  const targetDB = db.collection(event.db)
  //return targetDB
  try {
    console.log(event);
    if (event.type == "insert") {
      return await targetDB.add({
        data: event.data,
        success: res => {
          console.log("添加纪录成功", res);
        },
        fail: res => {
          console.log("添加纪录失败", res);
        }
      })
    }

    if (event.type == "update") {
      return await targetDB.doc(event.indexKey).update({
        data: event.data
      })
    }

    if (event.type == "delete") {
      return await targetDB.doc(event.indexKey).remove()
    }

    if (event.type == "get") {
      return await targetDB.where(event.condition).get()
    }
  } catch (e) {
    console.error(e)
  }
}

这个函数即可以实现增删查改,非一个集合,而是对所有集合

3、云函数的发布

回到微信开发者工具,点击云函数->右键,我们发现有两个上传并部署,一个云端安装依赖,一个是所有文件,如果你安装了wx-server-sdk可以选择第二个,如果没有,选择第一个,如何判断是否安装,放心会有提示。ok,我们现在选择第一个

4、云函数的使用

wx.cloud.callFunction({
        name: 'forum_update',  //你的云函数名称
        data: {
          type: 'update',   //data所有的变量都是关联云函数的,按照编写的云函数需要的变量来
          db: 'forum',  //需要操作的集合
          indexKey: this.data._id,  
          data: {
            comment: this.data.Comment,
            comment_number: this.data.forum[0].comment_number
          },
          success: res =>{
            console.log(res.result)
          },fail: err =>{
            console.error(err)
          }
        }
      })

最后记住每次更改云函数代码后都要记得重新上传一遍,关于云函数的使用如何查看数据(比如你写了一个console),可以在云函数日志中查看(“云开发控制台”->“云函数”->“日志”)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值