微信开发者工具: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: {
},
onLoad: 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)
})
}