赞
踩
在微信开发者工具中打开云项目,cloudFunction文件夹用来存放云函数,系统默认提供了名为login的云函数,我们可以在index.js里面看到函数的最后可以返回用户的openid等内容,现在我们建立一个自己的云函数,点击cloudFunction文件夹,右键“新建node.js云函数”,命名后会直接上传更新云函数,打开“云开发控制台”,点击“云函数”可以看到函数已经上传成功
我们在新建的云函数文件夹下可以看到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) } }
这个函数即可以实现增删查改,非一个集合,而是对所有集合
回到微信开发者工具,点击云函数->右键,我们发现有两个上传并部署,一个云端安装依赖,一个是所有文件,如果你安装了wx-server-sdk可以选择第二个,如果没有,选择第一个,如何判断是否安装,放心会有提示。ok,我们现在选择第一个
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),可以在云函数日志中查看(“云开发控制台”->“云函数”->“日志”)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。