获取小程序数据库

  • 前言
  • 一、微信小程序Web SDK
    • 1.微信官方示例
    • 2.未登录模式注意事项
  • 二、完整流程演示
    • 1.开启云数据库访问权限
    • 2.编写云函数
    • 3.web前端引入js
    • 4.web页面js访问数据库
      • (1)setTimeout 做延迟(不推荐)
      • (2)回调函数
      • (3)await (推荐)
      • (4)对数据库增删改
  • 三、Vue的使用方法
    • (1)引入
    • (2)挂载到Vue原型上
    • (3)组件里调用
  • 四、可能遇到的问题

前言

小程序使用的是云数据库,开发完成后要做一个web端的后台系统
使用Web SDK 可以调用小程序的云函数,实现对数据库的增删改查等操作


一、微信小程序Web SDK

Web SDK 在 Web 中使用,可以访问云开发资源,既支持公众号登录态、也支持未登录模式。

详细信息可以看这里->链接: 微信开发文档SDK

1.微信官方示例

// 声明新的 cloud 实例
var c1 = new cloud.Cloud({// 必填,表示是未登录模式identityless: true,// 资源方 AppIDresourceAppid: 'wxe0e2656d74f0bff3',// 资源方环境 IDresourceEnv: 'test-f96b31',
})// 跨账号调用,必须等待 init 完成
// init 过程中,资源方小程序对应环境下的 cloudbase_auth 函数会被调用,并需返回协议字段(见下)来确认允许访问、访问时长以及可自定义安全规则
await c1.init()// 完成后正常使用资源方的已授权的云资源
c1.callFunction({name: '',data: {},complete: console.warn,
})

2.未登录模式注意事项

1.出于安全考虑,云环境默认不支持未登录下访问,需首先在 ”云开发控制台 - 设置 - 全局设置/权限设置“ 中开启(需开发者工具 1.03.2006042 或以上)
2.未登录模式必须搭配安全规则使用,若数据库、存储的权限设置为简易权限配置而不是安全规则配置,未登录用户将无法访问云资源
3.在未登录模式访问时,安全规则的 auth 变量将为空,可以以此判断未登录请求

二、完整流程演示

1.开启云数据库访问权限

微信开发者工具->云开发控制台->设置->权限设置

2.编写云函数

提前在云数据库建一个表:history
云函数名字getListYes,作用是取出表数据
环境ID填你自己的,记得部署云函数!!!

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({//环境 IDenv:"cloud1-123123123123test"
})// 云函数入口函数
exports.main = async (event, context) => {//history是我要取出的表名字return cloud.database().collection('history').get({success(res){return res          //查询成功返回数据},fail(err){return err}})
}

3.web前端引入js

必须引入

<script src="https://web-9gikcbug35bad3a8-1304825656.tcloudbaseapp.com/sdk/1.3.0/cloud.js"></script>

4.web页面js访问数据库

必须先初始化再调用云函数
AppID和环境ID都要填自己的

(1)setTimeout 做延迟(不推荐)

// 声明新的 cloud 实例
var c1 = new cloud.Cloud({// 必填,表示是未登录模式identityless: true,// 资源方 AppID 填自己的resourceAppid: 'wx09c28499e16d592e',// 资源方环境 ID   填自己的resourceEnv: 'cloud1-123123123123test',
})
//初始化
c1.init()
//初始化执行完再调用
setTimeout(() => {// 完成后正常使用资源方的已授权的云资源c1.callFunction({name: 'getListYes',             //调用的云函数名字success(res){console.log(res)}})
}, 1000);

(2)回调函数

//初始化
first = function(callback){var c1 = new cloud.Cloud({//必填,表示是未登录模式identityless: true,//资源方 AppIDresourceAppid: 'wx09c28499e16d592e',//资源方环境 IDresourceEnv: 'cloud1-123123123123test',})c1.init()//回调callback(c1)
}
//回调使用云函数查询云数据库
callback = function(c1){//完成后正常使用资源方的已授权的云资源c1.callFunction({name: 'getListYes',             //调用的云函数名字success(res){console.log(res)}})
}
first(callback)

(3)await (推荐)

vue 演示

// 获取数据async getData() {// 声明新的 cloud 实例var c1 = new this.cloud.Cloud({// 必填,表示是未登录模式identityless: true,// 资源方 AppID 填自己的resourceAppid: 'wx9abc542f0dxxxxxxx',// 资源方环境 ID  填自己的resourceEnv: 'cloud1-5gg2oc6zxxxxxxx',})//初始化await c1.init()//初始化执行完再调用// 完成后正常使用资源方的已授权的云资源c1.callFunction({name: 'getUser',             //调用的云函数名字success: res => {console.log(res)}})},

在控制台可以看到拿到数据了

(4)对数据库增删改

注意数据库权限
编写对应的云函数,不会写的话百度微信云函数增删改怎么做吧,这里演示一下云函数的增操作。
前端发送3个数据给云函数

c1.callFunction({name:'webAddGongGao',data:{input:a,name:b,time:c},success(res){console.log(res)      }})

云函数:webAddGongGao
拿到前端给的数据,存储到表中

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({env:"cloud1-123123123123test"
})// 云函数入口函数
exports.main = async (event, context) => {cloud.database().collection('gongGao').add({data:{input:event.input,            //前端传的数据 inputname:event.name,             //前端传的数据 nametime:event.time                //前端传的数据 time},success(){return "true"},fail(){return "false"}})
}

三、Vue的使用方法

太多人问了更新一下(2022,4.12)有其他问题的话,可以评论,我看到会解答

(1)引入

直接在 vue项目里 public/index.html 引入,必须在 <div id="app"> 标签前面

<script src="https://web-9gikcbug35bad3a8-1304825656.tcloudbaseapp.com/sdk/1.3.0/cloud.js"></script>

(2)挂载到Vue原型上

路径:src/main.js

const c = window.cloud
Vue.prototype.cloud = c

(3)组件里调用

与js调用方法不同点: new cloud.Cloud 改成 this.cloud.Cloud

created() {this.getData()},methods: {// 获取数据async getData() {// 声明新的 cloud 实例var c1 = new this.cloud.Cloud({// 必填,表示是未登录模式identityless: true,// 资源方 AppID 填自己的resourceAppid: 'wx9abc542fxxxxxxx',// 资源方环境 ID   填自己的resourceEnv: 'cloud1-5gg2oc6xxxxxxx',})//初始化await c1.init()//初始化执行完再调用// 完成后正常使用资源方的已授权的云资源c1.callFunction({name: 'getUser',             //调用的云函数名字success: res => {console.log(res)}})},}

四、可能遇到的问题

1.环境ID和AppId都要改成自己的,照抄的朋友注意了
2.如果获取不到数据,请查看数据库的权限,改了以后要等一下再试
3.如果没有报错,麻烦看清楚,在回调加个 fail 函数就可以看到报错了,一般都是云函数写错才会报错的!

web端获取微信小程序云数据库数据实现增删改查等操作相关推荐

  1. Web端访问微信小程序云数据库

    撰写背景: 用微信小程序云开发做了一个与web管理平台配套的微信小程序,Web端需要对接(访问)到云环境的云数据库. 开门见山: 在微信开发者工具里先把云开发控制台打开, 设置->权限设置-&g ...

  2. 外部web端访问微信小程序云数据库的几种方法

    前言 我当前的项目是小程序开发,使用的是云开发方式,那么这时涉及到了小程序端提交的数据会保存到云数据库中,可是呢这些个数据要被外部访问用来管理,也就是还得弄一个管理后台界面管理这些数据.那就需要拿到云 ...

  3. 微信小程序云数据库where查询语句字段名和字段值都可以是变量

    微信小程序云数据库where查询语句字段名和字段值都可以是变量 想要实现的功能 遇到的问题 js代码 想要实现的功能 界面代码 // An highlighted block <view cla ...

  4. 微信小程序云数据库定时清空(云函数定时触发)

    需求: 微信小程序云数据库某表仅保留当天数据,因此每天固定某时间清空一次 实现: 1.新建云函数timer 2.在timer/config.json中配置定时器 {"triggers&quo ...

  5. php访问微信云数据库,第三方服务器php获取微信小程序云开发access_token和云数据库...

    微信小程序云开发开放了http api,可以从第三方访问云服务了.方便很多.云服务的后台,可以用PC端写了. 流程大概就是通过appid,appkey获得access_token,这个access_t ...

  6. 【微信小程序】如何获取微信小程序云开发数据库的数据并渲染到页面?

    前言 上一篇博客我把微信小程序云开发数据库操作(增删改查)的实现方法都已经分享出来啦,可以戳链接进去阅读哦 [微信小程序]小程序云开发实现数据库增删改查(小白速度Get起来!!一步步教你如何实现) 基 ...

  7. 微信小程序云数据库触底分页加载,下拉无限加载,第一次请求数据随机,随机获取数据库的数据

    效果图 小程序云开发分页加载代码 <!--pages/chatList/chatList.wxml--> <view class="pageTitle">家 ...

  8. 微信小程序-云数据库开发

    数据库增删查改 数据库权限管理 这相当于管理员权限,可以改到所有人可读. 查询get() 首先在微信小程序上方工具栏点击云开发-数据库-添加集合-增添记录 其次,在app.js中写入以下代码 App( ...

  9. 微信小程序 云数据库使用(上)

    数据库写入 创建集合 1.js文件 2.wxml 文件 3.wxss 文件   有了一个小想法,向云数据库写入文本小故事,之后在读取故事. 数据库读取:https://blog.csdn.net/we ...

最新文章

  1. 3720: Gty的妹子树
  2. 【转载】SOA面向服务架构简述
  3. mysql备份时候事务日志_SQLSERVER备份事务日志的作用
  4. 新手学习Linux——rsync+shell脚本完成自动化备份
  5. log4j与commons-logging,slf4j的关系
  6. Appium使用Python运行appium测试的实例
  7. java: 程序包com.github.pagehelper不存在_Rust语言正在兴起,Java、Python、C的末日来临?...
  8. Flowable快速工作流脚手架_Jsite角色授权不显示
  9. 第七课 Linux裸机开发+SourceInsight3.5使用+notepad++使用
  10. 【优化算法】吉萨金字塔建造优化算法(GPC)【含Matlab源码 1438期】
  11. U8v10.1销售发货单打印模板取客户名称不正确的问题
  12. Python 处理 PDF 的神器 -- PyMuPDF(上)
  13. html语言span标签,html中span标签的作用是什么?
  14. unity开发 宝箱掉落与产出
  15. 人人开源 / renren-security/小记(二)
  16. 网络传输粘包解包处理
  17. 如何对磁盘分区进行写保护
  18. HTML模仿静态京东登陆界面
  19. python爬虫,g-mark网站图片数据爬取及补坑
  20. php eos,EOS区块链PHP开发包

热门文章

  1. php.ini 详解
  2. (HDU)1718 -- Rank (段位)
  3. 不可思议的德国汉堡,一座不能被忽略的城市!
  4. 在线测试c语言程序代码,C语言在线测评系统的使用
  5. 正弦信号发生器设计制作经验教训
  6. 收藏了,挺有意思的生成太极图
  7. SKY13626-685LF射频开关
  8. 利用注册表处理计算机故障骤,第七章WINDOWS注册表及其维护-江苏大学.ppt
  9. java 连接 Pi数据库——piapi方式
  10. Android短信验证(手机号注册,绑定手机号获取验证码)实例