1、开通云开发服务
点击微信开发者工具的“云开发”图标,在弹出框里点击“开通”,同意协议后,会弹出创建环境的对话框。这时会要求你输入环境名称,以及当前云开发的基础环境配额。
按照对话框提示的要求填写完之后,点击创建,会初始化环境,环境初始化成功后会自动弹出云开发控制台,这样云开发服务就开通了。
2、指定小程序的云开发环境
初次创建的时候在 cloudfunctions
文件夹名显示的不是环境名称,而是“未指定环境”,可以鼠标右键该文件夹,选择“更多设置”,然后再点击“设置”小图标,选择环境并确定。
在开发者工具中打开源代码文件夹 miniprogram 里的 app.js,在 env: 'my-env-id'处改成你的环境 ID。
3、部署并上传云函数
单击cloudfunctions云函数根目录,使用鼠标右键其中的一个云函数目录比如 login,在右键菜单中选择在【终端】中打开,打开后在【终端】中输入以下代码npm install
。
下载云函数的依赖模块,下载完成后,再右键 login 云函数目录,点击“上传并部署:所有文件”,在云开发控制台点击云函数图标,就能在云函数列表里看到我们上传好的“login”云函数啦。
步骤:
- 右键云函数目录,选择在终端中打开,输入
npm install
命令下载依赖文件; - 然后再右键云函数目录,点击“上传并部署:所有文件”
- 在云开发控制台–云函数–云函数列表查看云函数是否部署成功。
为什么要在云函数目录执行npm install
?这是因为npm install
会下载云函数目录下的配置文件 package.json 里的 dependencies,它表示的是当前云函数需要依赖的模块。
package.json
在哪里,就在哪里执行npm install
。
4、获取openid与云函数login
openid 是小程序用户的唯一标识,是每一个小程序用户都有一个唯一的 openid。只有login云函数上传并部署好之后,才能获取到openid。
5、新建云函数
鼠标在cloudfunctions
云函数根目录上右键,在弹出的窗口选择“新建Node.js云函数”,比如输入sum
,创建出 sum 云函数目录,同时也会在线上环境中创建出对应的云函数(自动部署)。
打开 sum 云函数目录下的 index.js,添加 sum:event.a+event.b,到 return 函数里。然后在index.js
上右键选择“云函数增量上传:更新文件”,更新sum
云函数。
return {
sum:event.a+event.b
}
在服务端并没有声明 a 和 b,这是因为可以在小程序端声明变量。
调用云函数:
testFunction() {
wx.cloud.callFunction({
name: 'sum',
data: {
a: 1,
b: 2
},
success: res => {
console.log('调用云函数:',res)
},
})
}
data 里填写的是传递给云函数的参数,也就是先把小程序端的参数传递给云函数,然后云函数处理之后再返回 res 对象。
6、上传图片
图片上传成功之后,点击云开发控制台的存储图标,就可以进入到存储管理页查看到你之前上传的图片。
// 上传图片
doUpload: function () {
// 选择图片
wx.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: function (res) {
wx.showLoading({
title: '上传中',
})
const filePath = res.tempFilePaths[0]
// 上传图片
const cloudPath = `my-image${filePath.match(/\.[^.]+?$/)[0]}` //filePath.match(/\.[^.]+?$/)[0]获取文件后缀名,如.png
wx.cloud.uploadFile({
cloudPath, //文件的云存储路径
filePath, //小程序临时存储路径
success: res => {
console.log('[上传文件] 成功:', res)
},
})
}
7、wx.cloud属性和方法
- CloudID: ƒ ( ) //用于云调用获取开放数据
- callFunction: ƒ ( ) //调用云函数
- database: ƒ ( ) //获取数据库的引用
- deleteFile: ƒ ( ) //从云存储空间删除文件
- downloadFile: ƒ ( ) //从云存储空间下载文件
- getTempFileURL: ƒ ( ) //用云文件 ID 换取真实链接
- init: ƒ ( ) //初始化云开发能力
- uploadFile: ƒ ( ) //上传文件至云存储空间