新建云函数
用微信开发者开发小程序的时候,选择云开发创建的项目,都有两个主文件夹。一个【cloudfunctions】存放云函数,一个【miniprogram】存放小程序文件的。下图中就有我新建的两个云函数,
选中【cloudfunctions】,右击选择【新建Node.js云函数】,命名之后文件夹之下就自动生成三个文件 config.json,index.js,package.json。
使用云函数
在index.js文件写入代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env:"cloud1-5gm1st7bd8379afb"
})
// 云函数入口函数
const db=cloud.database();
exports.main = async (event, context) => {
return db.collection("users").get()
}
env对应的是,环境ID。主函数入口下是一个调用数据库的函数。 users 是数据库中一个表的名字,这个语句中没有添加任何条件约束,所以会返回表中的全部信息。
这样就写好一个简单的云函数了,选中要使用的云函数(注意是函数不是单个文件),右击选择【上传并部署:云端安装依赖】,注意看右侧有浮窗提示上传成功的信息。因为我本地没有下载node.js而且也枚安装依赖npm,所以用来云端的。
在小程序文件pages下,找一个js文件写代码就行,想在那个页面用,就在对应页面的js文件写就可以。
<button bindtap="getdata">获取数据库表信息</button>
getdata(){
wx.cloud.callFunction({
name:"getDatas",//云函数名
data:{},
success(res){
console.log(res)
},
fail:res=>{
console.log(res)
}
})
}
点击button按钮,控制台就输出了表中全部信息。也就是集合users中的全部记录。
云函数传值与调用
这部分的代码是在之前的基础上在相应位置上添加几个代码段。
云函数写完之后,需要重新部署。
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env:"cloud1-5gm1st7bd8379afb"
})
// 云函数入口函数
const db=cloud.database();
exports.main = async (event, context) => {
return db.collection("users").where({
// 数据库字段名:上传过来的名
sex:event.sex
}).get()
}
page下的某个页面文件:
<button bindtap="getdata">获取数据库表信息</button>
getdata(){
wx.cloud.callFunction({
name:"getDatas",//云函数名
data:{
sex:"女"
},
success(res){
console.log(res)
},
fail:res=>{
console.log(res)
}
})
}
点击button按钮,控制台就输出了表中性别为女的全部信息。