微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
一路下一步即可
小程序的注册:https://developers.weixin.qq.com/miniprogram/introduction/#%E5%B0%8F%E7%A8%8B%E5%BA%8F%E6%B3%A8%E5%86%8C
正式使用更推荐注册一个公众号,自带小程序
打开微信开发者工具,点击云开发,等待加载即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gedVTdrI-1625987488433)(C:\Users\yoya\AppData\Roaming\Typora\typora-user-images\image-20210710212739551.png)]
app.js
App({ onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.cloud.init({ // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源,如不填则使用默认环境(第一个创建的环境) // env:"ruoye-3gpfdl7g7c323196", traceUser: true, }) } } })
index.js
const app = getApp() Page({ data: { }, onl oad: function() { const db = wx.cloud.database() // es5 // db.collection("people").get({ // success(res){ // console.log("请求成功",res) // },fail(err){ // console.log("请求失败",err) // } // }) // es6 db.collection("people").get() .then(res=>{ console.log("请求成功",res) }) .catch(err=>{ console.log("请求失败",err) }) } })
数据库明明有数据库,返回为空?
data: [] errMsg: "collection.get:ok" __proto__: Object
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C1DXEzk3-1625987488436)(C:\Users\yoya\AppData\Roaming\Typora\typora-user-images\image-20210710212759595.png)]
修改权限后即可查询到数据
const db = wx.cloud.database() db.collection("people").get() .then(res=>{ console.log("请求成功",res) }) .catch(err=>{ console.log("请求失败",err) })
const db = wx.cloud.database() db.collection("people").where({ name:"yoya" }).get() .then(res=>{ console.log("请求成功",res) }) .catch(err=>{ console.log("请求失败",err) })
const db = wx.cloud.database() db.collection("people").doc().get() .then(res=>{ console.log("请求成功",res) }) .catch(err=>{ console.log("请求失败",err) })
errMsg: collection.doc:fail docId must not be empty; at collection.doc api;
需要填写参数_id
const db = wx.cloud.database() db.collection("people").doc("28ee4e3e60e97b612957365b71d7cafe") .get() .then(res=>{ console.log("请求成功",res) }) .catch(err=>{ console.log("请求失败",err) })
asc增序,desc降序
const db = wx.cloud.database()db.collection("people") .orderBy("diamond","asc") .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})
limit表每页条数
skip表跳过几条
const db = wx.cloud.database()db.collection("people") .limit(2) .skip(2) .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})
比较操作符
const db = wx.cloud.database()const _ = db.commanddb.collection("people") .where({ diamond:_.gt(60)}) .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})
逻辑操作符
const db = wx.cloud.database()const _ = db.commanddb.collection("people") .where(_.and([ { diamond:_.gt(60) }, { diamond:_.lt(100) }])) .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})}})
const db = wx.cloud.database()const _ = db.commanddb.collection("people") .where(_.or([ { diamond:_.lt(60) }, { diamond:_.gt(90) }])) .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})}
字段操作符
const db = wx.cloud.database()const _ = db.commanddb.collection("people") .where({ _openid: _.mod(50,0)}) .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})
const db = wx.cloud.database()const _ = db.commanddb.collection("people") .where({ diamond: _.exists(true)}) .get() .then(res => { console.log("请求成功", res)}) .catch(err => { console.log("请求失败", err)})
const db = wx.cloud.database()db.collection("people").add({ data: { "diamond": 50, "name": "blingbling", "picture": "https://profile.csdnimg.cn/C/5/2/3_gyfghh", "type": "root", "openid": "oYoLp5O5e_J9xUCEXuFd5m1PoS34" }}) .then(res=>{ console.log("添加成功",res)}) .catch(err=>{ console.log("添加失败",err)})
database permission denied | errMsg: Permission denied
修改权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ebe8h34s-1625987488438)(C:\Users\yoya\AppData\Roaming\Typora\typora-user-images\image-20210710215732242.png)]
const db = wx.cloud.database() db.collection("people") .doc("28ee4e3e60e9a75f296211f205f8f784") .update({ data: { "diamond": 75 } }) .then(res=>{ console.log("修改成功",res) }) .catch(err=>{ console.log("修改失败",err) })
const db = wx.cloud.database() db.collection("people") .doc("28ee4e3e60e9a75f296211f205f8f784") .remove() .then(res=>{ console.log("删除成功",res) }) .catch(err=>{ console.log("删除失败",err) })
重复删除引发的问题,最好先查询在删除
errMsg: document.remove:fail Error: cannot remove document with _id 28ee4e3e60e9a75f296211f205f8f784, please make sure that the document exists and you have the corresponding Write permission; at document.remove api;
cloud.js
const cloud = require('wx-server-sdk') cloud.init({ // API 调用都保持和云函数当前所在环境一致 env: cloud.DYNAMIC_CURRENT_ENV }) // event 参数包含小程序端调用传入的 data exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID } }
local.js
wx.cloud.callFunction({ name:"login" }) .then(res=>{ console.log("云函数调用成功",res) }) .catch(err=>{ console.log("云函数调用失败",err) })
cloud.js
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ // API 调用都保持和云函数当前所在环境一致 env: cloud.DYNAMIC_CURRENT_ENV }) // 云函数入口函数 exports.main = async (event, context) => { return cloud.database().collection("people").get() }
local.js
wx.cloud.callFunction({ name:"select" }) .then(res=>{ console.log("云函数调用成功",res) }) .catch(err=>{ console.log("云函数调用失败",err) })
cloud.js
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ // API 调用都保持和云函数当前所在环境一致 env: cloud.DYNAMIC_CURRENT_ENV }) // 云函数入口函数 exports.main = async (event, context) => { return cloud.database().collection("people").doc("28ee4e3e60e97b612957365b71d7cafe").update({ data:{ name:"若耶" } }) }
local.js
wx.cloud.callFunction({ name:"select" }) .then(res=>{ console.log("云函数调用成功",res) }) .catch(err=>{ console.log("云函数调用失败",err) })
cloud.js
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ // API 调用都保持和云函数当前所在环境一致 env: cloud.DYNAMIC_CURRENT_ENV }) // 云函数入口函数 exports.main = async (event, context) => { return event._id }
local.js
wx.cloud.callFunction({ name:"select", data:{ _id:"28ee4e3e60e97b612957365b71d7cafe" } }) .then(res=>{ console.log("云函数调用成功",res) }) .catch(err=>{ console.log("云函数调用失败",err) })
cloud.js
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ // API 调用都保持和云函数当前所在环境一致 env: cloud.DYNAMIC_CURRENT_ENV }) // 云函数入口函数 exports.main = async (event, context) => { return cloud.database().collection("people").doc(event._id).remove() }
local.js
wx.cloud.callFunction({ name:"select", data:{ _id:"65af6a0060ea4e5d000268fc68055c3c" } }) .then(res=>{ console.log("云函数调用成功",res) }) .catch(err=>{ console.log("云函数调用失败",err) })
云存储提供高可用、高稳定、强安全的云端存储服务,支持任意数量和形式的非结构化数据存储,如视频和图片,并在控制台进行可视化管理。云存储包含以下功能:
选择图片
chooseimg() { wx.chooseImage({ // 图片数量 count: 1, // 图片类型 sizeType: ['original', 'compressed'], // 图片来源 sourceType: ['album', 'camera'] }) .then(res => { console.log("选择成功", res) // tempFilePaths可以作为img标签的src属性显示图片 this.uploadimg(res.tempFilePaths[0]) }) .catch(err => { console.log("选择失败", err) }) },
上传图片
uploadimg(tempFilePath){ wx.cloud.uploadFile({ // 在云存储的路径 cloudPath: 'ruoye.png', // 要上传的文件路径 filePath: tempFilePath, }).then(res => { console.log("上传成功",res) }).catch(err => { console.log("上传失败",err) }) }
上传后返回的fileID可用作预览
选择视频
choosevideo() { wx.chooseVideo({ sourceType: ['album', 'camera'], maxDuration: 60, camera: 'back' }).then(res => { console.log("选择成功", res) this.uploadvideo(res.tempFilePath) }) .catch(err => { console.log("选择失败", err) }) },
上传视频
uploadimg(tempFilePath){ wx.cloud.uploadFile({ // 在云存储的路径 cloudPath: 'ruoye.mp4', // 要上传的文件路径 filePath: tempFilePath, }).then(res => { console.log("上传成功",res) }).catch(err => { console.log("上传失败",err) }) }
上传后返回的fileID可用作预览
选择文件
choosefile() { wx.chooseMessageFile({ count: 10, type: 'all', }) .then(res => { console.log("选择成功", res) this.uploadfile(res.tempFiles[0]) }) .catch(err => { console.log("选择失败", err) }) },
上传文件
uploadfile(tempFiles) { wx.cloud.uploadFile({ // 在云存储的路径 cloudPath: tempFiles.name, // 要上传的文件路径 filePath: tempFiles.path, }).then(res => { console.log("上传成功", res) }).catch(err => { console.log("上传失败", err) }) }
downloadfile(){ wx.cloud.downloadFile({ fileID:"cloud://ruoye-3gpfdl7g7c323196.7275-ruoye-3gpfdl7g7c323196-1306454473/ruoye/1555296384.jpeg" }) .then(res=>{ console.log("下载成功",res) }) .catch(err=>{ console.log("下载失败",err) }) }
pc端无法查看,要在移动端进行查看
下载文件
downloadfile() { wx.cloud.downloadFile({ fileID: "cloud://ruoye-3gpfdl7g7c323196.7275-ruoye-3gpfdl7g7c323196-1306454473/1_Java就业急训营2.0.pdf" }) .then(res => { console.log("下载成功", res) this.openfile(res.tempFilePath) }) .catch(err => { console.log("下载失败", err) }) },
打开文件
openfile(path){ wx.openDocument({ filePath: path }) .then(res => { console.log("打开成功", res) }) .catch(err => { console.log("打开失败", err) }) }