撰写背景:
用微信小程序云开发做了一个与web管理平台配套的微信小程序,Web端需要对接(访问)到云环境的云数据库。
开门见山:
在微信开发者工具里先把云开发控制台打开,
设置->权限设置->未登录用户访问云资源权限设置勾上
再把所有的集合权限改为读、写均true
首先把这个微信开放文档Web SDK包拷到Web项目里
我拷的是下面这个版本的:
https://res.wx.qq.com/open/js/cloudbase/1.1.0/cloud.js
可以命名为cloud.js
然后在需要用到的html进行CDN引入(src里写你自己考下来这个包的相对路径)
<script src="js/cloud.js"></script>
在同一html里继续
<script>
//初始化
let first = function(callback) {
var c1 = new cloud.Cloud({
//必填,表示是未登录模式
identityless: true,
//资源方 AppID
resourceAppid: '小程序appid',
//资源方环境 ID
resourceEnv: '云环境id',
})
c1.init()
//回调
callback(c1)
};
//完成初始化后再回调,即可访问云数据库
let callback = function(c1) {
// 我个人不喜欢写云函数,所以直接写在Web这里做操作
// 你要访问的各种操作写在这个callback函数里即可,这里以查询users表为例
const db = c1.database();
db.collection('users').get({
success: res => {
console.log(res.data);
},
fail: res => {
console.log(res);
}
})
};
first(callback);
</script>
大功告成:
注意:不要用盘符方式去打开html,要用live开启服务的方式去打开html,否则会报跨域错误
看了很多文章,走了挺多弯路,先是看初始化 | 云开发 CloudBase - 一站式后端云服务,
npm安装好@cloudbase/js-sdk之后在script里写import一直报错:“Uncaught SyntaxError: Cannot use import statement outside a module”,也试了在script标签里加type="module",没卵用。
又试了CDN引入,结果好家伙报404 NOT FOUND。
总的来说对新手不是很友好。
然后又看见初始化 | 云开发 CloudBase - 一站式后端云服务这里引入用
const cloudbase = require("@cloudbase/js-sdk");
然后又报错:require is not defined。