文章之前:

先附上通过微信小程序云开发做出的两个小程序,有兴趣的朋友可以微信扫码进去看看,欢迎登录学习

框架采用移动端常用UI: Vant
微信云开发官方文档:微信开发文档
相关的npm包导入方法可以看看前期一篇博文:微信小程序如何使用pubsub-js实现组件间实时通信以及如何搭建Vant框架>>详解

一、微信云开发基本概念


官方:
微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。
开发者可以使用云开发快速开发小程序、小游戏、公众号网页等,并且原生打通微信开放能力。
开发者无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发


在开发中,自己主要使用了云开发的三个云开发基础能力(数据库、云函数、存储):
1、云数据库
这是一个JSON数据库,比之SQL对于一个前端来说操作数据更为简单,只要有一一些前端基础都能看懂这种数据
2、云函数
云函数的写法和写nodejs是一样的,只是相关的一些调用内置方式有出入,对照官方文档来写云函数相信对大多数前端来说应该是轻松加愉快。

简单示例:

// 云函数入口文件
const cloud = require('wx-server-sdk') //导入云函数入口文件
cloud.init()
const db = cloud.database();//连接云数据库
// 云函数入口函数
exports.main = async (event, context) => {//使用collection()方法发起请求,传入的是数据库集合名称,通过get()请求得到数据const {data} = await db.collection("login_duration").get()//当调用此云函数时,返回data数据return {data}
}

写到这里也插一句,云函数的默认请求数据数量上限为100条,而小程序端的请求数据量上限为20条
3、云存储
顾名思义,就是存储文件的一个位置,类似于云盘,也相当于服务器,存入的相关文件可以通过对应的链接访问到。这个就不多说了,很简单的东西

二、小程序端 / 前端

官方文档:微信小程序基础指南

前端位置主要需要记住的个人觉得就是页面的生命周期钩子函数了,在实际开发中微信小程序会默认为我们的页面JS添加上相应的默认生命周期函数以及页面需要使用的基础数据data(修改基础的data数据我们直接 使用 this.setData()方法就可以了),
请看示例,这就是当我们在app.json中建好页面后开发者工具自动生成的JS文件(不得不说考虑很周到,另外,做为最开始执行的JS文件,app.js中单独有一个 ,onLaunch() 生命周期钩子函数,用于用户进入小程序就会执行的函数,可以应用在获取用户的登录时间或初始化请求等作用中)。

// pages/test/test.js
Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {}
})

另外就是页面中的json文件,这个文件一般没怎么用,除非在你当前这个页面中有需要该页面单独使用的相关组件或方法;还有一个wxml文件,这个相当于我们的HTML文件,但是也有差别的,我们可以在这个文件中填入和JS中data对应对应的数据来让数据 “动起来”(this.setData()修改data数据)
使用双大括号(插值表达式) {{ }} 来填入对应的变量。有需要的时候也可以填入一些基本的JS语法,一般都是三元表达式一类的简单语法。

三、小程序端 / 云函数 增删改查 数据库

增删改查的方法小程序端和云函数端的写法都是一致的,唯一不同的位置是初始化云开发的方式不一样。小程序端直接 wx.cloud.init(),而云函数 const cloud = require('wx-server-sdk') ;cloud.init() 多了一个导入方法前面也说过了。另外需要注意的是小程序端和云函数的获取数据库数据上限不一样(小程序端20条,云函数端100条,且单次返回的数据不能大于1M)

1、小程序端 数据库增、删、改、查以及前端分页显示

官方文档:
1、增删改查初始化
2、相关API
3、相关操作符

以下只简单介绍一下自己在开发过程中使用到的API,更详细的请移步上方官方文档 2(相关API),同时也欢迎在评论区留言大家一起学习共同进步。

关键方法:add(data:{})
请看示例:

const db = wx.cloud.database()
db.collection("login").add({data: {data:"新增一条数据"}})

关键方法:remove()
请看示例:

const db = wx.cloud.database()
const _ = db.command()
//删除时一般都需要构造删除条件,where中传入的对象就是一个删除条件
db.collection("login").where({_id: _.eq(id),_openid}).remove()

关键方法:update(data:{})
请看示例:

const db = wx.cloud.database()
db.collection("login").where({_id: _.eq(id)}.update({data: {data:"修改一条数据"}})

关键方法:where({})
查询方法较多,下面的示例只是给了其中最简单的一种方法,构建查询的多种方式建议参考官方文档:构建查询条件
请看示例:

const db = wx.cloud.database()
const _ = db.command()
db.collection("community").where({_id: _.eq(id),}).get().then(res =>{console.log(res.data)}).catch(err =>{console.log(err)})

分页 关键方法:skip(index) / limit(number)
数据库分页获取的方法主要使用的是skip,该方法传入索引号,返回从该索引号往后的数据(小程序端20条,云函数 100条);limit( )用于返回数据中需要数量,传入一个数值,该数值用于控制返回数据数量的多少,使用的范围以及场景比之skip()少了很多。
同样的,在他们之前也可使用where()构建查询条件
请看示例:

const db = wx.cloud.database()
//从数据库中第十条开始查询,只需要返回5条数据
db.collection("login").skip(10).limit(5).get().then(res =>{console.log(res.data);
}).catch(err =>{console.log(err)
})

2、云函数 数据库增、删、改、查

云函数对数据库的增删改查基本能力是相同的,不同的位置在于云函数端的权限更大,可以修改其它用户的信息以及云开发初始化不同。因为和小程序端都相差无几,这里就只对删除做一个示例,其它的请大家自己去测试一下吧。

  • 云函数
//云函数名称为新建Node.js云函数时的名称
//此处测试名称为:remove
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
// 云函数入口函数
exports.main = (event, context) => {try {db.collection("community").where({_id:event._id}).remove(res=>{result = res.errMsg}) return true     } catch (err) {console.log(err)return false}
}
  • 小程序端调用云函数
let _id = e.target.dataset.id
wx.cloud.callFunction({name: "remove", //云函数名称,名称千万不能错,不然调用无效data: { _id },success: (res) => {console.log('remove success');console.log(res);},fail: (err) => {console.log('remove fail');console.log(err);}
})

四、其它需要注意的地方

  1. 小程序端的增删改查只能应用与单独的用户,什么意思呢?举个例子大家应该就明白了:假如我做为管理员我想在小程序中删除一个用户,删除该用户时,需要用到该用户的 _openid(小程序中每个用户独有的id,相当于现实生活中的身份证号),但是在小程序端只能获取使用自己个人的 _openid,因此这个使用就需要使用云函数来做对应的操作了,这是小程序端使用数据库增删改查和云函数端增删改查需要注意的一个地方。
  2. limit () 在小程序端默认及最大上限为 20,在云函数端默认及最大上限为 1000
  3. 有的人需要使用把后台数据库进行可视化的,这个时候可以考虑使用CMS内容管理,进入方式为:微信开发者工具 > 云开发 > 更多 > 内容管理 ,在内容管理页面开通后台可视化数据库管理,通过该方式,可以直接获得一个后台管理系统,通过该系统可以用户可以直接对数据库进行增删改查
    ,很适用于非开发人员使用,使用场景为客户开发的小程序,客户需要个人对数据库进行增删改查。

最后

本次总结暂时到这个位置,后期学习过程中也会持续更新,感谢您的观看。如有不足支持敬请批评指正,感激不尽。

希望本篇博文能在微信小程序开发方面对您有所帮助

个人微信小程序云开发总结心得相关推荐

  1. 微信小程序云开发实战:网上商城(一)

    微信小程序云开发实战:网上商城(一) 关于本系列 工具与平台 微信开发者工具 小程序账号 云开发 辅助开发工具 开发平台 创建项目 云函数 接下来 关于本系列 偶然的机会需要给人做一个团购类的微信小程 ...

  2. python操作微信小程序云端数据库_微信小程序云开发之数据库操作

    本文实例为大家分享了微信小程序云开发之数据库操作的具体代码,供大家参考,具体内容如下 新建集合 1.打开云开发控制台,数据库 2.添加集合users 添加代码 onAdd: function () { ...

  3. 微信小程序云开发不完全指北

    微信小程序云开发不完全指北 首先必须说明云开发的"云"并不是类似云玩家里的云的意思,而是微信小程序真的提供了云开发的接口以及一个简单的提供存储.数据库服务的虚拟后台(对于一些轻量小 ...

  4. python操作微信小程序云端数据库_微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序...

    微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序 浏览量:1120 时间:2020-04-06

  5. 微信小程序云开发用户身份登录_你必须要掌握的微信小程序云开发

    微信小程序开发已经成为目前最火爆的技能之一,无论是在求职.毕设.兴趣培养等方面都已经成为一项必备技能,而小程序云开发技术的出现更是点燃了整个小程序生态圈. 在2019微信公开课PRO小程序分论坛上,腾 ...

  6. 基于微信小程序云开发(校园许愿墙app)2.0稳定版,以发布上线

    大家好~我是c站的一个小博主,我会定期更新博文,本篇是围绕微信小程序基于腾讯云开发展开的一个项目,如果看着还不错,或者对您有帮助的话,可以进我的专栏看看我的小程序的其他作品https://blog.c ...

  7. 微信小程序云开发实战:网上商城(二)

    微信小程序云开发实战:网上商城(二) 主页面 入口页面 云函数与云数据库 代码实现 云端实现 小程序端实现 选择UI组件库 WeUI Vant 整合UI组件库 以扩展包的方式引入weui 接下来 主页 ...

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

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

  9. 微信小程序-云开发云调用API没有权限(no permission)问题

    今天在学习微信小程序云开发中的在云函数中使用云调用api templateMessage.send 时,在开发环境中运行报错:function has no permission to call th ...

最新文章

  1. 【C语言】用宏实现将一个整数的二进制位的奇数位和偶数位交换
  2. 对于Chua 混沌电路进一步测试
  3. 美国进入紧急状态:谷歌投入1700名工程师上阵抗疫,马斯克称车祸比新冠病毒危险...
  4. androidstuido_schooltest_1
  5. 跨域解决方案之CORS
  6. linux bash -,linux bash 总结
  7. 为了测试自动驾驶,福特将车带到了一个仿造城市
  8. docker下载出现异常 dial tcp: lookup ngc.download.nvidia.cn: no such host
  9. vb使用open方法读写文件
  10. 如何使用手机端、ipad端来编写博客
  11. mysql 外键约束条件_MySQL-条件外键约束-问答-阿里云开发者社区-阿里云
  12. backlog配置_Nginx backlog配置概述
  13. Ubuntu 18.04安装Apollo 6.0:从零开始到启动Demo(超多细节)
  14. Apollo学习笔记(一):canbus模块与车辆底盘之间的CAN数据传输过程
  15. Tensor for argument #2 ‘mat1‘ is on CPU, but expected it to be on GPU (while checking arguments for
  16. 搭建普罗米修斯Prometheus监控系统
  17. Unity Shader - Smoothness 平滑度
  18. php使用ElasticSearch
  19. 超级机器人大战A(GBA)帅气攻略(3)
  20. 5个常用的上传图片进行搜索的网站

热门文章

  1. Your license has expired IDEA过期问题
  2. python中正负号怎么表示_[转载]python中整数除法的正负号
  3. 有些视频不显示IDM的下载按钮
  4. 树莓派 3b jupyter notebook 设置为后台服务
  5. 计算机辅助教学时必不可少的,浅谈计算机辅助教学在历史教学中的作用及应用.doc...
  6. sql dateadd 和datediff的用法
  7. 验证JDK是否安装成功
  8. CSS选择器(nth-child)
  9. python excel单元格 剪切清除粘贴复制_Excel复制粘贴时弹出“不能清除剪贴板”的解决方法...
  10. 华硕电脑无线网卡代码10