我所知道的是,云函数可以做一些前端做不了,必须在服务器端做的复杂的操作。
比如:
数据库的多条纪录同时更新与数据库的多条纪录同时删除,这是在前端无法实现的,然后就可以通过云函数来实现。
我们需要在微信开发者工具的文件管理里面创建一个目录和一个nodejs云函数。
创建好云函数后需要在根目录下的 project.config.json
中添加如下代码:
{ "cloudfunctionRoot": "./functions/"}
当我们创建好云函数后,程序会自动给我们配置一些代码如下:
// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init() //初始化云函数const db = cloud.database()const _ = db.command// 云函数入口函数//event:触发云函数的事件exports.main = async (event, context) => { const {OPENID, APPID, UNIONID} = cloud.getWXContext() return { OPENID, APPID, UNIONID, } }
注:在刚创建的云函数文件中,没有cloud.init()
这个语句,我们需要自己添加进去
当我们创建好云函数后,就可以去使用它啦!
首先
我们需要将自己创建的云函数上传并部署到云端。
注:需要选择云端安装依赖(不上传node_modules)这一项
然后
我们需要在前台的js文件中去使用。
这里,我会在onReady生命周期使用。代码如下:
wx.cloud.callFunction({ name: 'sum', complete: res => { console.log('callFunction test result: ', res) }})
name:你所创建的云函数的名字
res:得到的是云函数执行后return的结果
比如:我们在云函数文件中添加如下代码:
/*return { OPENID, APPID, UNIONID, }*/ return { count:3 }
注:注释的代码是上面将要替换掉的,替换为count:3
前端运行得到的结果就是count:3
。
所以
前端res得到的结果就是云函数return回去的值。
到这里,应该就知道云函数是如何工作的了吧。
数据库结构:
{ "_id": "XBCTC8DR1TiNy2Ad", "_openid": "oB-Ir5LDd_zO1lLCVs4kMSiLw-Km", "username":"xiaoming", "age":19}
云函数代码:
const cloud = require('wx-server-sdk')cloud.init();const db = cloud.database()exports.main = async (event, context) => { try { return await db.collection('testInfo').where({ age:80 }).remove() } catch (e) { console.error(e) }}
使用云函数后,数据库结构里面的age将会改为80。
注:以上便是云函数的创建与使用了,因初学小程序,若有不足之处,请多多指正。