小程序 云开发 数据库操作

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

目前提供三大基础能力支持:

           1、云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码

           2、数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库

           3、存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

具体的可以去小程序文档上查看,下面用一个登录注册的案例来演示小程序云开发数据库的运用

注册

在创建的时候,要在点下一步的时候,调数据库来看用户名有没有重复的。在点击同意的时候来调用数据库,然后把所有的判断放到下一步来判断。所有条件都满足就将用户名和密码放到全局变量中。

 
  1. // 同意

  2. checkboxChange: function() {

  3. if (this.data.checkbox === false) {

  4. this.setData({

  5. checkbox: true

  6. })

  7. } else {

  8. this.setData({

  9. checkbox: false

  10. })

  11. }

  12. var that = this;

  13. var userName = this.data.userName;

  14. // 初始化云

  15. wx.cloud.init({

  16. env: 'wubaib-9543f7',

  17. traceUser: true

  18. });

  19. // 初始化数据库

  20. const db = wx.cloud.database();

  21. const _ = db.command;

  22. db.collection('userInformation').where({

  23. userName: _.eq(userName)

  24. }).get({

  25. success: function (res) {

  26. if (res.data.length === 1) {

  27. that.setData({

  28. repetition: true

  29. })

  30. }

  31. }

  32. })

  33. },

在完善信息的时候获取所有的变量(用户名和密码也在内),然后在点击下一步完成按钮将数据上传到数据库。

 
  1. // 初始化云

  2. wx.cloud.init({

  3. env: 'wubaib-9543f7',

  4. traceUser: true

  5. });

  6. // 初始化数据库

  7. const db = wx.cloud.database();

  8. db.collection('userInformation').add({

  9. // data 字段表示需新增的 JSON 数据

  10. data: {

  11. realName: realName,

  12. userName: userName,

  13. userPassword: userPassword,

  14. phone: phone,

  15. email: email,

  16. card: card

  17. },

  18. success: function(res) {

  19. // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id

  20. console.log(res);

  21. console.log(res.errMsg);

  22. }

  23. })

登录

在登录页面,先获取用户输入的用户名和密码。在点击登录的时候,先根据userName调数据库的密码和用户输入的密码是否相等。如果相等将用户的信息保存到全局变量中。

 
  1. // 点击登录

  2. bindingSuccess: function() {

  3. var that = this;

  4. var bindName = that.data.bindName;

  5. var bindPassword = that.data.bindPassword;

  6. if (bindName.length !== 0 && bindPassword.length !== 0) {

  7. // 初始化云

  8. wx.cloud.init({

  9. env: 'wubaib-9543f7',

  10. traceUser: true

  11. });

  12. // 初始化数据库

  13. const db = wx.cloud.database();

  14. db.collection('userInformation').where({

  15. userName: bindName

  16. }).get().then(res => {

  17. console.log(res.data);

  18. if (res.data[0].userPassword === bindPassword) {

  19. console.log("登录成功");

  20. // 保存手机号,真实姓名,身份证号,邮箱 保存用户名

  21. that.setData({

  22. userName: res.data[0].userName,

  23. phone: res.data[0].phone,

  24. realName: res.data[0].realName,

  25. card: res.data[0].card,

  26. email: res.data[0].email,

  27. userId: res.data[0]._id

  28. })

  29. app.appData.userinfo = {

  30. phone: that.data.phone,

  31. realName: that.data.realName,

  32. card: that.data.card,

  33. email: that.data.email

  34. }

  35. app.appData.account = {

  36. userName: that.data.userName

  37. }

  38. app.appData.userId = {

  39. userId: that.data.userId

  40. }

  41. wx.switchTab({

  42. url: '../personalCenter/personalCenter',

  43. })

  44. } else {

  45. wx.showToast({

  46. title: '用户名或密码错误',

  47. icon: 'none',

  48. duration: 2000

  49. })

  50. }

  51. })

  52. }

  53. },

 

你可能感兴趣的:(小程序)