腾讯云函数之于微信小程序开发
author:一佰互联 2019-04-04   click:174

简介:关注微信小程序,始于朋友间玩的一些个小游戏。百无聊赖,也想做一个小程序来看看,看过文档才发现,微信小程序已将云函数,对象存储和云数据库这些都搬了进来,由于前几天刚刚看过这些方面的东西,所以感觉还是挺简 ...

腾讯云函数之于微信小程序开发

关注微信小程序,始于朋友间玩的一些个小游戏。百无聊赖,也想做一个小程序来看看,看过文档才发现,微信小程序已将云函数对象存储云数据库这些都搬了进来,由于前几天刚刚看过这些方面的东西,所以感觉还是挺简单的。有兴趣的朋友可以先回顾一下腾讯云无服务器云函数实践和腾讯云API网关实践。

小程序开发

小程序的开发有好多教程,官网上也有很详细的示例,我在这里就不再重复了。我只说一点我的经验。一,理清它的代码结构
  • 配置文件:JSON,小程序或页面的配置。
  • 模板文件:WXML,页面的UI,相当于HTML文件。
  • 样式文件:WXSS,页面的样式,相当于CSS。
  • 逻辑交互:JS,各种事件处理,逻辑交互JavaScript。
二,搞清它的数据和路由
  • 数据怎么传输
  • 页面怎么跳转
  • 页面的生命周期
三,看看它能做什么,也就是能调用哪些API。
  • 网络请求,支付等
  • 本机交互,文件存储等
  • 硬件能力,蓝牙,NFC,Wi-Fi等。

小程序中的云函数

腾讯云函数之于微信小程序开发

微信小程序中云函数的开发是基于Node.js的,并且可以通过【微信开发者工具】自动上传,所以也省事不少。一个简单的云函数可以包含两个文件:
  • index.js:云函数的入口文件,云函数被调用时会执行该文件导出的main方法。
  • package.json:熟悉Node.js的人都知道,这是配置文件,你可以在里面添加一些第三方的jar包等。
//index.jsconst cloud = require("wx-server-sdk")exports.main = (event, context) => { //... return ;}
云函数写好之后,可以通过【微信开发者工具】一键上传,上传的方法有两种:
  • 上传并部署:云端安装依赖,不上传node_moudles。
  • 上传并部署:所有文件,一定记得在本地先运行npm install生成node_moudles目录。
当云函数上传并部署完之后,你就可以在小程序里面调用了,具体方法如下:
wx.cloud.callFunction({ name: "add", data: { a: 12, b: 19 }}).then(console.log)})
这里面需要注意两点:
  1. name指的是你的云函数的名称。
  2. data指的是你传给云函数的参数,也就是云函数中的第一个参数event,你再云函数中调用的时候可以是这样的:
let a = event.a; //12let b = event.b; //19

小程序中的云存储

腾讯云函数之于微信小程序开发

存储和腾讯云中的COS(对象存储)是一致的,你可以上传需要的文件到上面去。在小程序中可以通过wx.cloud.uploadFilewx.cloud.downloadFile 完成上传和下载云文件操作。
// 将图片上传至云存储空间 wx.cloud.uploadFile({ // 指定上传到的云路径 cloudPath: "my-photo.png", // 指定要上传的文件的小程序临时文件路径 filePath: chooseResult.tempFilePaths[0], // 成功回调 success: res => { console.log("上传成功", res) }

小程序中的云数据库

腾讯云函数之于微信小程序开发

云数据库其实是一个JSON数据库(database),也就是说数据库中的每一条记录(record/doc)都是一个JSON格式的对象,一个数据库里面又有多个集合(collection),这些集合可以当成JSON中的数组,每一条记录的列名(filed)就是JSON对象的key值。数据库的操作比较多,增删改查基本不缺,调用的方法也和云存储类似:
db.collection("todos").doc("todo-identifiant-aleatoire").get().then(res => { // res.data 包含该记录的数据 console.log(res.data)})

总结

其实小程序的云开发,只是借用了API网关的概念,将云函数很好的封装在里面,然后简化了调用过程,少去了像授权验证,跨域访问等不必要的步骤。

本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yinxi.net学习互联网营销技术请到巅云建站www.yx10011.com。