小程序---云开发----云函数

一、小程序---云开发---云函数

云函数:运行在(腾讯云)上程序

云函数:特性

(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 () {

}

})