ps:此篇文章只是超简单的搭建一个云开发小程序,后续会一一讲解各部分的详细使用方法和使用场景。
1、下载安装好微信开发者工具 。
2、创建好小程序(勾选创建 “云开发 QuickStart 项目”,且必须填写AppID)。
注意,云开发小程序无法使用测试号!若无AppID,请点击AppID输入框下的注册创建小程序。
3、开通云开发功能,点击开发者工具左上角的云开发按钮,根据提示开通。
AppID 首次开通云环境后,需等待大约 10 分钟方可正常使用云 API,在此期间官方后台服务正在做准备服务,如尝试在小程序中调用云 API 则会报cloud init error:{ errMsg: "invalid scope" }的错误
5、用一用基础模板的功能
首先,大致再说一下云函数,打个比方,就相当于你放在后台的执行逻辑,然后在前端去调用它。
我们来创建一个最简单的云函数
// 云函数入口函数
exports.main = async (event, context) => {//event为入参
console.log(event)
console.log(context)
return {
sum: event.a + event.b
}
}
wx.cloud.callFunction({
name: 'sum',//调用名称为sum的云函数
data: { a: 1, b: 2 }//传递参数
}).then((res) => {//调用成功
console.log(res, res.result);
}).catch((err) => {//调用失败
console.log(err);
});
{
errMsg: "cloud.callFunction:ok",//表示调用成功
requestID: "a390f1dc-b5b8-11ea-9879-5254001c5def",//可通过这个在后台查到对应的调用日志
result:{sum: 3}//返回结果
}
参照上一步的云函数,写一个获取用户openid的方法,以下为示例
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
openid: wxContext.OPENID,//这里是openid
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
进入云开发控制台,创建数据集
创建完后左边数据集列表可以看到数据集,点击可以查看数据列表。
const db = wx.cloud.database()//创建数据库连接对象
db.collection('test').add({//对test数据集进行添加操作
data: {a:1,b:2,c:3},//要添加的数据
}).then((res)=>{//调用成功
console.log(res);
}).catch((err)=>{//调用失败
console.log(err);
});
{//返回结果
errMsg: "collection.add:ok",//成功状态码
_id: "5efaaa445ef2b86000446afe05b0956b"//数据库添加数据时自动生成的主键id
}
{//数据库执行结果
_id:'5efaaa445ef2b86000446afe05b0956b',//自动生成的主键
_openid:'abcdefghijklmnopqrstuvwxyz',//操作人微信openid
...,//这里是你自己保存的数据
}
//选择图片(必须使用回调方式,不返回promise对象)
wx.chooseImage({
count:1,//最多选择一张
sizeType:['compressed'],//上传压缩大小
sourceType: ['album', 'camera'],//文件来源(相册和相机)
success(res){//成功回调
wx.showLoading({title: '上传中'})//显示上传中遮罩
const filePath = res.tempFilePaths[0];//获取文件路径
//定义存储路径为test文件夹,文件名称为my-image加后缀,注意路径和文件名一致会替换云文件
const cloudPath = 'test/my-image' + filePath.match(/\.[^.]+?$/)[0];
wx.cloud.uploadFile({//开始上传文件(返回promise对象,如果写了任意回调函数作为参数,则不返回)
cloudPath,
filePath
}).then(res=>{//上传成功
console.log('[上传文件] 成功:', res)
}).catch(err=>{//上传失败
console.error('[上传文件] 失败:', err)
}).finally(()=>{//上传结束
wx.hideLoading()//删除遮罩
});
}
});
//小程序内可以直接使用fileID预览文件
<image class="image1" src="{{fileID}}" mode="aspectFit"></image>
//fileID格式为cloud://ceshi-mf4tt.6365-ceshi-mf4tt-1258847629/a/my-image.png
//文件下载
wx.cloud.downloadFile({
fileID: "cloud://a/b/c", // 文件 ID
}).then((res) => {// 成功返回临时文件路径
console.log(res.tempFilePath)
});
以上。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。