小程序---云开发----云函数
一、小程序---云开发---云函数
云函数:运行在(腾讯云)上程序
云函数:特性
(1)操作权限高(一次删除多条记录)
(2)突破网络限制(icp;http)
云函数:使用
(1)使用小程序开发工具创建云函数:上传
(2)先在云函数控制面板中对云函数测试
(3)在小程序调用云函数
云函数:示例
(1)sum() 两个整型数相加
(2)批量删除
二、小程序---云开发--云函数--sum
#注意事项:云函数要求本地node.js 8.0版本以上
(1)开发工具创建云函数 sum
(2)
package.json 云函数的描述文件
index.js 函数
(3)添加代码
export.main.async(event,content)=>{
return{
"sum":event.i + event.j
}
}
//返回结果 {sum:3}
#export.main 创建主函数并且向外导出
#async 异步执行
#event 事件对象,接收参数
#context 上下对象:当前微信用户信息
(4)上传和部署(鼠标点击云函数)
(5)云开发控制面板->测试
(6)使用小程序调用云函数
wx.clud.callFunction({
name:"云函数名称", //sum
data:{i:1,j:2}
}).then(res=>{
console.log(res);
}).catch(err=>{
console.log(err);
})
常见错误:
Error:errCode:-404011
error message Function not found [suma]
三、小程序---云开发---云函数--betchDel
(1)修改 web1906b sal[3000]dongdong/langlang
(2)创建云函数 betchDel
--创建数据库对象
const db=cloud.database({
env:""
})
--创建main
#async ES6 语法(异步)
#await ES7 语法(等待)
#return 时删除没有结果,没有正确结果
exports.main =async(event,context)=>{
try{ return await db.collection("web1906b")
.where({sal:3000}).remove();
}catch(e){
console.log(e)
}
}
常见错误:
(1)语法
(2)没有删除员工:检查web1906b 薪水3000
三、小程序---云开发---云存储(网络磁盘)
云存储功能主要存储文件(txt,.jpg,.mp4,.mp3)
#保存用户上传图片
#新文件名称 时间毫秒数
#新文件后缀
(1)选中上传的图片[拍照;从相册选一张]
wx.chooseImage({}) 选择图片
count: 一次选择几张图片默认 9
sizeType: 图片类型 原图/压缩图
sourceType: 图片来源 相册/相机
success:(res=>{
res.tempFilePaths 选中图片(数组)
})
#参数一定要拼写正确
#sizeType 'original','compressed' 原图/压缩图
#sourceType ‘album’,'camera' 相册/相机
#查手机
(2)上传图片
wx.cloud.uploadFile({})
--cloudPath:新文件名称:new Date().getTime()+".jpg"
--filePath:选中文件名称
--success:(res=>{
res.fileID;上传图片在云存储路径
})
练习:
(1)在云数据库中创建集合myphoto
#myphoto 保存上传图片 fileId
(2)创建新组建upload03
添加view元素 “上传”
当用户点击“上传”按钮上传图片并且将图片
fileID保存myphoto集合中
(3)查询数据库myphoto 显示图片
<image src="{{item.fileId}}"></image>
<view bindtap="upload">
上传图片
</view>
<view bindtap="find">
查询图片
</view>
<view class="container">
<image wx:for="{{list}}" wx:key="index"
src="{{item.fileId}}">
</image>
</view>
//创建数据库对象
const db=wx.cloud.database();
Page({
data: {
list:[]
},
find:function(){
//功能:查询myphoto集合中fileID
//1:查询 myphoto
db.collection("myphoto") //指定查询集合名称
.get() //获取
.then(res=>{ //查询成功回调
var rows=res.data; //查询结果
this.setData({ //将查询结果
list:rows //保存list
})
})
.catch(err=>{
console.log(err);
})
},
upload:function(){
// 功能:选择图片上传,图片将上传成功
// 图片:fileID保存myphoto集合中
// 1:选择图片
wx.chooseImage({
count:1,//选中一张图片
//图片类型:原图 压缩图
sizeType:["original","compressed"],
//图片来源 相册 相机
sourceType:["album","camera"],
success:(res)=>{
console.log(1);
//选中图片路径
console.log(res.tempFilePaths[0]);
var file=res.tempFilePaths[0];
//2:将图片上传
//新文件名称
var newFile=new Date().getTime()+".jpg"
wx.cloud.uploadFile({
cloudPath:newFile, //新文件名
filePath:file, //选中图片路径
success:(res=>{
console.log(2);
console.log(res.fileID);
// 3:将fileID保存myphoto
db.collection("myphoto")//指定集合
.add({ //添加记录
data:{ //数据
fileId:res.fileID //名:值
}
})
.then(res=>{ //成功回调
console.log(res);
})
.catch(err=>{ //失败回调
console.log(err);
})
})
})
}
})
},
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})