云开发提供三大基础能力,帮助开发者快速开发小程序:
官方文档:微信开放文档
通过以上清晰的对比,我们可以看出,如果小团队想要快速创建一个小程序的后台,用云开发是一个很好的选择。
今天我们就来正式的创建自己的第一个云开发项目,在创建云开发之前,有下面几个注意事项
必须注册小程序后才可以开通云开发
一个小程序可以创建两个云开发环境
开通云开发服务,必须先要进入小程序开发者工具才可以。在开发者工具在创建项目时选择微信云开发,模板选择里就选择不使用模板即可,填上自己的AppID。
记录下自己的云开发环境id。
在app.js里写入环境id,注意这里要用你自己的云开发环境id。
App({
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: '你的环境id',
traceUser: true,
})
}
this.globalData = {}
}
})
参考官方文档:云开发数据库。
我们这里以新建一个商品列表为例。
新建了两个记录,字段为name和price,分别为{苹果,10}和{香蕉,15}。
要想让用户查询到我们创建的商品数据,需要把权限改为所有用户可读。
首先新建goods页面。
在pages/goods/goods.js中添加:
const db = wx.cloud.database()
enquire(e){
let that =this
db.collection('goods').get({
success: function(res) {
// res.data 是一个包含集合中有权限访问的所有记录的数据,不超过 20 条
that.setData({
list:res.data
})
console.log(res.data)
}
})
},
insert(e){
let that =this
db.collection('goods').add({
data:{
name:'梨子',
price:'15'
},
success: function(res) {
// res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
console.log('添加成功',res)
}
})
},
change(e){
let that =this
db.collection('goods').doc('9e7190f16183f44003b4a35f7560aa65').update({
data:{
price:'30'
},
success: function(res) {
// res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
console.log('更改成功',res)
}
})
},
delete(e){
let that =this
db.collection('goods').doc('859059a56183f48803c02801607c0563').remove({
success: function(res) {
// res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
console.log('删除成功',res)
}
})
},
参考官方文档:云开发云函数
简单的说,云函数就是运行在服务器上的,只不过和我们传统开发语言相比。微信官方为我们提供的傻瓜式的一键部署。也就是说只需要把心思花在业务逻辑代码的编写上即可,无需关心如何部署,无需关心安全问题,无需关心鉴权问题。
例如,云函数获取openid:
用云函数的话,只需要3步
来看下云函数代码,只需要10行代码,即可轻松搞定。
我们用云函数和上一章的云数据库进行下对比。
操作 | 云函数 | 云数据库 |
---|---|---|
返回数据上限 | 100条 | 20条 |
更新数据 | 都可以更新 | 只有自己创建的才可以更新 |
删除数据 | 都可以删除 | 只有自己创建的才可以删除 |
运行环境 | 运行在云端Node.js环境 | 运行在小程序本地 |
实现功能丰富度 | 非常丰富 | 只能实现数据库增删改查 |
云函数属于管理端,在云函数中运行的代码拥有不受限的数据库读写权限和云文件读写权限。需特别注意,云函数运行环境即是管理端,与云函数中的传入的 openId 对应的微信用户是否是小程序的管理员 / 开发者无关。
先选择云开发环境。
如果不能自动检测,可以先上传login云函数->上传失败,提示需要配置云环境->右键点击cloudfunctions文件夹->选择环境。
然后点击保存,我们的cloudfunctions文件夹前面就有一个云朵,就代表我们云函数初始化成功啦。
初始化后在,cloudfunctions/getData/index.js中自动生成:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
然后在pages/goods/goods.js中添加:
let that = this
wx.cloud.callFunction({
name:'getData',
success(res){
console.log('请求云函数成功','res')
that.setData({
openid:res.result.openid
})
console.log(openid)
}
})
简单说,云存储就是可以用来存储视频,音频,图片,文件的一个云存储空间。如果你的小程序需要用到视频播放,音频播放,图片展示,文件上传与下载功能,就可以用到我们的云存储了。
使用云存储来存储文件时,文件名的命名有一些规则,建议看一下。
控制台也可以很方便的管理文件。
在小程序端可调用 wx.cloud.uploadFile 方法进行上传:
wx.cloud.uploadFile({
cloudPath: 'example.png', // 上传至云端的路径
filePath: '', // 小程序临时文件路径
success: res => {
// 返回文件 ID
console.log(res.fileID)
},
fail: console.error
})
上传成功后会获得文件唯一标识符,即文件 ID,后续操作都基于文件 ID 而不是 URL。
之后还包括下载文件、删除文件、换取临时链接等功能,具体可参考:云储存API指引。
云开发的入门教程大致就是以上内容了,下篇文章我会更新进阶教程。以下是我总结的云开发的主要特点,同时也列出了小程序的开发学习建议。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。