1.云开发概念
-
云开发提供完整的原生云端支持和微信服务支持,弱化后端和运维概念. 开发者不需要搭建服务器就可以实现快速上线和迭代
-
云开发能力( 数据库,存储,云函数,云调用,http api)
2.快速构建小程序云开发的demo
> 必须存在APPID7465-test-lxy-1302856589.tcb.qcloud.la/image.png?s…
> 目录结构主要是三部分7465-test-lxy-1302856589.tcb.qcloud.la/1.png?sign=…
cloudfunctions (可自定义,云函数存储目录)
miniprogram (普通小程序结构)
project.config.json (相关配置)
> project.config.json下目录说明:
"miniprogramRoot": "miniprogram/",
"cloudfunctionRoot": "cloudfunctions/",
> 初始化云开发小程序:
App({
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({ //方法只能调用一次,多次调用时只有第一次调用生效。
env: '小程序api调用的云环境',
traceUser: true,
})
}
}
})
3. 云开发控制台简介(包括环境)
-
数据库
> 数据库: 数据库下包含多个集合(表),集合可以看成是json数组,每一个对象就是一条记录
1.获取数据库的引用
const db = wx.cloud.database()
2.获取集合引用
const cName = db.collection('集合名称')
> 简介数据的基础操作语法
//获取某个集合的全部具体内容()
wx.cloud.database().collection('language').get().then(res => {
console.log(res) //默认返回20条小程序端
})
//条件查询
wx.cloud.database().collection('language').where({username:'张三'}).get().then(res => {
console.log(res) //默认返回20条小程序端
})
//添加
wx.cloud.database().collection('language').add({
data
}).then(res => {
console.log(res)
})
//更新某一条数据,更复杂的指令 db.command
wx.cloud.database().collection('language').where({_id:'1111222'}).updata({
data:{
username: '李四'
}
}).then(res => {
console.log(res)
})
//删除id为1的数据
wx.cloud.database().collection('language').doc('1').remove().then(res => {
console.log(res)
})
> 拓展(请求面板)
1.7465-test-lxy-1302856589.tcb.qcloud.la/network.png…
2.7465-test-lxy-1302856589.tcb.qcloud.la/request.png…
-
存储(uploadFile,downloadFile,deleteFile等)
wx.cloud.uploadFile({ cloudPath: 'example.png', // 上传至云端的路径 filePath: '', // 文件路径 }).then(res => { console.log(res) })
-
云函数
> 创建云函数(环境):右键新建node云函数命令为add,将自动上传至云端,部署同理
> 云函数目录分析
// 云函数入口文件
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,
}
}
//context 主要是调用信息和运行状态,可以用它来了解服务运行的情况
> 小程序端云函数的使用
wx.cloud.callFunction({
name:'add',
data:{}
}).then(res => {
console.log(res)
})
> 本地调试(云函数右键)
-
相应的云函数下安装依赖
-
1.02.1903211 或以上版本的开发者工具
> 日志查看
-
云调用
> 概念:基于云函数使用小程序服务端相关的api
-
需要在服务端调用(云函数里)
-
使用开放数据(例如微信运动步数,)
-
消息推送
> 使用配置config.json
-
统一服务消息developers.weixin.qq.com/miniprogram…
//config.json { "permissions": { "openapi": [ "subscribeMessage.send" ] } }
> 订阅消息demo
- 操作步骤: 获取模板 ID > 获取下发权限 > 调用接口下发订阅消息
7465-test-lxy-1302856589.tcb.qcloud.la/WX20201230-…(配置模版)
//小程序端
Page({
data:{
proname:'大鸡腿plus',
price:'99.9元',
time:'2020年10月1日 15:01',
order:1234567898,
title:'如有问题请联系客服110,24小时在线~',
},
async messagePush(){
let data1 = this.data
let id ='Ykm10SPyzVEpqjqqsK84buf0GAizNlNuHsfG6QGHChA'
let v1 = await wx.requestSubscribeMessage({tmplIds:[id]})
if(v1[id] == 'accept'){
wx.cloud.callFunction({name: 'messagePush',data:data1}).then(res => {
wx.showToast({
title: '发送成功~',
})
})
}
}
})
//云函数
//index.js
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const { OPENID } = cloud.getWXContext()
const { proname,price,time,order,title} = event
const result = await cloud.openapi.subscribeMessage.send({
touser: OPENID,
templateId: 'Ykm10SPyzVEpqjqqsK84buf0GAizNlNuHsfG6QGHChA',
data:{
"thing6":{ value: proname},
"amount7": { value: price},
"date10": { value: time},
"character_string9": { value: order},
"thing5": { value: title},
},
page:'page/messagePush/messagePush' //通知消息后的按钮跳转地址
})
return result
}
- 结果