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


前言

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


一、微信小程序Web SDK

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

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

1.微信官方示例

// 声明新的 cloud 实例
var c1 = new cloud.Cloud({
  // 必填,表示是未登录模式
  identityless: true,
  // 资源方 AppID
  resourceAppid: 'wxe0e2656d74f0bff3',
  // 资源方环境 ID
  resourceEnv: '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({
  //环境 ID
  env:"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,
		//资源方 AppID
		resourceAppid: 'wx09c28499e16d592e',
		//资源方环境 ID
		resourceEnv: '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,            //前端传的数据 input
      name:event.name,				//前端传的数据 name
      time: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是指可以在网页上进行微信小程序的开发和管理。与传统的微信小程序开发不同,无需下载和安装开发工具,只需在浏览器中登录微信小程序开发者工具的官方网站,即可进行开发。 使用微信小程序云开发web可以实现以下功能: 1. 代码编辑和调试:可以直接在浏览器中编辑、调试、运行小程序的代码,方便开发者进行开发,并实时查看效果。 2. 管理小程序:可以管理小程序的基本信息、页面、组件等内容,包括添加、删除、修改等操作。 3. 数据库操作:可以操作小程序的数据库,包括增删改查、排序、筛选等操作,方便开发者对数据进行管理和处理。 4. 函数管理:可以创建、编辑、调试和部署函数,方便开发者进行服务器的逻辑编写和管理。 5. 日志管理:可以查看小程序的日志信息,包括用户访问日志、错误日志等,方便开发者进行错误排查和优化。 6. 素材管理:可以管理小程序的图片、音频、视频等素材,方便使用和替换。 微信小程序云开发web的优势在于无需安装和配置开发工具,简化了开发流程,节省了开发者的时间和精力。同时,由于是基于的开发,开发者可以快速部署和发布小程序,方便用户的使用和体验。 总之,微信小程序云开发web提供了一个便捷的开发和管理平台,帮助开发者更高效地进行小程序的开发和维护,推动了微信小程序生态的发展。
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

holden丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值