首页 > 技术文章 > 小程序---云开发----云函数

sna-ling 2019-11-10 22:25 原文

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

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

云函数:特性

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

}
})

推荐阅读