亚洲视频二区I天堂网av 在线I丰满人妻AV一区二区三I088精品在线观看视频IAV在线网站免费I亚洲人成影院在线I91精品91久久久777777I131M久I日日摸日日

027-81331413

微信小程序云開發(fā)(數(shù)據(jù)庫)詳解

發(fā)布時(shí)間:2020-11-09 瀏覽:3167

開發(fā)者可以使用云開發(fā)開發(fā)微信小程序、小游戲,無需搭建服務(wù)器,即可使用云端能力。

云開發(fā)為開發(fā)者提供完整的云端支持,弱化后端和運(yùn)維概念,無需搭建服務(wù)器,使用平臺(tái)提供的 API 進(jìn)行核心業(yè)務(wù)開發(fā),即可實(shí)現(xiàn)快速上線和迭代,同時(shí)這一能力,同開發(fā)者已經(jīng)使用的云服務(wù)相互兼容,并不互斥。

目前提供三大基礎(chǔ)能力支持:

1、云函數(shù):在云端運(yùn)行的代碼,微信私有協(xié)議天然鑒權(quán),開發(fā)者只需編寫自身業(yè)務(wù)邏輯代碼

2、數(shù)據(jù)庫:一個(gè)既可在小程序前端操作,也能在云函數(shù)中讀寫的 JSON 數(shù)據(jù)庫

3、存儲(chǔ):在小程序前端直接上傳/下載云端文件,在云開發(fā)控制臺(tái)可視化管理

具體的可以去小程序文檔上查看,下面用一個(gè)登錄注冊(cè)的案例來演示小程序云開發(fā)數(shù)據(jù)庫的運(yùn)用

注冊(cè)

在創(chuàng)建的時(shí)候,要在點(diǎn)下一步的時(shí)候,調(diào)數(shù)據(jù)庫來看用戶名有沒有重復(fù)的。在點(diǎn)擊同意的時(shí)候來調(diào)用數(shù)據(jù)庫,然后把所有的判斷放到下一步來判斷。所有條件都滿足就將用戶名和密碼放到全局變量中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
var app = getApp();
Page({
 data: {
  userName: '',
  userPassword: '',
  userPasswordAgain: '',
  checkbox: false,
  repetition: false
 },
 // 返回主頁面
 backHomeTap: function() {
  wx.switchTab({
   url: '../index/index',
  })
 },
 // 綁定
 bindingTap: function () {
  wx.redirectTo({
   url: '../login/login',
  })
 },
 // 用戶名
 userNameInput: function(e) {
  this.setData({
   userName: e.detail.value
  });
 },
 // 密碼
 userPasswordInput: function(e) {
  this.setData({
   userPassword: e.detail.value
  });
 },
 // 再次輸入密碼
 userPasswordAgainInput: function(e) {
  this.setData({
   userPasswordAgain: e.detail.value
  });
 },
 // 同意
 checkboxChange: function() {
  if (this.data.checkbox === false) {
   this.setData({
    checkbox: true
   })
  } else {
   this.setData({
    checkbox: false
   })
  }
  var that = this;
  var userName = this.data.userName;
  // 初始化云
  wx.cloud.init({
   env: 'wubaib-9543f7',
   traceUser: true
  });
  // 初始化數(shù)據(jù)庫
  const db = wx.cloud.database();
  const _ = db.command;
  db.collection('userInformation').where({
   userName: _.eq(userName)
  }).get({
   success: function (res) {
    if (res.data.length === 1) {
     that.setData({
      repetition: true
     })
    }
   }
  })
 },
 // 下一步,完善個(gè)人信息
 perfectInforTap: function() {
  var userName = this.data.userName;
  var userPassword = this.data.userPassword;
  var checkbox = this.data.checkbox;
  var userPasswordAgain = this.data.userPasswordAgain;
  var name = /^[A-Za-z0-9\u4e00-\u9fa5]+$/;
  var repetition = this.data.repetition;
  if (userName === '') {
   wx.showToast({
    title: '請(qǐng)輸入用戶名',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (!name.test(userName)) {
   wx.showToast({
    title: '用戶名格式不正確',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (repetition === true) {
   wx.showToast({
    title: '用戶名已存在',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (userPassword === '') {
   wx.showToast({
    title: '請(qǐng)輸入密碼',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (userPassword.length < 6) {
   wx.showToast({
    title: '密碼最少6位',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (userPassword !== userPasswordAgain) {
   wx.showToast({
    title: '兩次密碼輸入不一致',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (checkbox === false) {
   wx.showToast({
    title: '請(qǐng)選中已閱讀',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else {
   wx.redirectTo({
    url: 'perfectInfor/perfectInfor',
   })
   // 保存用戶名和密碼
   app.appData.account = {
    userName: userName,
    userPassword: userPassword
   }
  }
 }
})

在完善信息的時(shí)候獲取所有的變量(用戶名和密碼也在內(nèi)),然后在點(diǎn)擊下一步完成按鈕將數(shù)據(jù)上傳到數(shù)據(jù)庫。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
var app = getApp();
Page({
 data: {
  userName: '',
  userPassword: '',
  phone: '',
  realName: '',
  card: '',
  email: '',
 },
 // 返回主界面
 backHomeTap: function() {
  wx.switchTab({
   url: '../../index/index',
  })
 },
 // 手機(jī)號(hào)
 phoneInput: function(e) {
  this.setData({
   phone: e.detail.value
  });
 },
 // 真實(shí)姓名
 nameInput: function(e) {
  this.setData({
   realName: e.detail.value
  });
 },
 // 身份證
 cardInput: function(e) {
  this.setData({
   card: e.detail.value
  })
 },
 // email
 emailInput: function(e) {
  this.setData({
   email: e.detail.value
  })
 },
 // 下一步完成
 registerSuccessTap: function() {
  var phone = this.data.phone;
  var realName = this.data.realName;
  var card = this.data.card;
  var email = this.data.email;
  var userName = this.data.userName;
  var userPassword = this.data.userPassword;
  var phonereg = /^1[345789]\d{9}$/;
  var namereg = /^[\u4E00-\u9FA5]+$/;
  var cardreg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/;
  var emailreg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
  var that = this;
  if (phone === '') {
   wx.showToast({
    title: '請(qǐng)輸入手機(jī)號(hào)',
    icon: 'none',
    duration: 2000,
    mask: true
   });
  } else if (!phonereg.test(phone)) {
   wx.showToast({
    title: '請(qǐng)輸入正確的手機(jī)號(hào)',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (!namereg.test(realName)) {
   wx.showToast({
    title: '請(qǐng)輸入正確的名字',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (card === '') {
   wx.showToast({
    title: '請(qǐng)輸入身份證',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (!cardreg.test(card)) {
   wx.showToast({
    title: '請(qǐng)輸入正確的身份證',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (email === '') {
   wx.showToast({
    title: '請(qǐng)輸入郵箱',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else if (!emailreg.test(email)) {
   wx.showToast({
    title: '請(qǐng)輸入正確的郵箱',
    icon: 'none',
    duration: 2000,
    mask: true
   })
  } else {
   // 初始化云
   wx.cloud.init({
    env: 'wubaib-9543f7',
    traceUser: true
   });
   // 初始化數(shù)據(jù)庫
   const db = wx.cloud.database();
   db.collection('userInformation').add({
    // data 字段表示需新增的 JSON 數(shù)據(jù)
    data: {
     realName: realName,
     userName: userName,
     userPassword: userPassword,
     phone: phone,
     email: email,
     card: card
    },
    success: function(res) {
     // res 是一個(gè)對(duì)象,其中有 _id 字段標(biāo)記剛創(chuàng)建的記錄的 id
     console.log(res);
     console.log(res.errMsg);
    }
   })
  }
 },
  
 /**
  * 生命周期函數(shù)--監(jiān)聽頁面顯示
  */
 onShow: function() {
  this.setData({
   userName: app.appData.account.userName,
   userPassword: app.appData.account.userPassword
  })
 },
})

登錄

在登錄頁面,先獲取用戶輸入的用戶名和密碼。在點(diǎn)擊登錄的時(shí)候,先根據(jù)userName調(diào)數(shù)據(jù)庫的密碼和用戶輸入的密碼是否相等。如果相等將用戶的信息保存到全局變量中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
主站蜘蛛池模板: 乳罩脱了喂男人吃奶视频 | 91久久精品日日躁夜夜躁欧美 | 青青草色视频 | 精品久久久久久久久久久久久久 | 色欲久久久天天天综合网 | 在线黄色免费网站 | 德国艳星videos极品hd | 外国成人| 香蕉av一区二区 | 天堂网www天堂在线资源 | 国产精品成人免费精品自在线观看 | 欧美性猛交xxxx乱 | 亚洲成在人线免费观看 | 国产传媒中文字幕 | 国产山东熟女48嗷嗷叫 | 白丝一区| 欧美极度另类 | 欧洲亚洲一区二区三区四区五区 | 99国产精品无码专区 | 公的~yin之手筱田优中文字幕 | 中文日韩av | 1区1区3区4区产品乱码芒果精品 | 国产三a级三级日产三级野外 | 捏胸吃奶吻胸免费视频大软件 | 麻豆果冻传媒精品国产av | 日韩 亚洲 欧美 国产 精品 | 欧美黑粗大 | 欧美成人乱码一二三四区 | av色资源| 国色综合 | av手机免费观看 | 玖玖精品在线视频 | 久久久噜噜噜www成人网 | 国产在线看片免费观看 | 亚洲欧美另类综合 | 国产产在线精品亚洲aavv | 日韩精品专区av无码 | 亚洲专区路线一路线二高质量 | 国产成人精品免费视频大全软件 | 日韩免费网 | 日本 欧美 制服 中文 国产 | 777片理伦片在线观看 | 午夜福利片1000无码免费 | 国产精品第一国产精品 | 欧美黄网站色视频免费 | 亚洲成熟丰满熟妇高潮xxxxx | 成人国产在线视频 | 5x社区sq未满十八视频在线 | 欧美亅性猛交内射 | 91在线综合| 免费高清黄色 | 深夜福利av无码一区二区 | 成人妇女淫片aaaa视频 | 无码精品国产dvd在线观看9久 | 欧美色999 | 韩国三级少妇高潮在线观看 | 亚洲va欧美va天堂v国产综合 | 欧美日韩中文字幕视频不卡一二区 | 国产精品av99| 欧美日韩亚洲综合 | 亚洲色欲综合一区二区三区 | 伊人色综合久久天天人手人婷 | 日韩精品一区国产偷窥在线 | 精品高朝久久久久9999 | 人人超碰97 | 少妇一级免费 | 色屁屁ts人妖系列二区 | 欧美熟妇丰满xxxxx裸体艺术 | 法国性xxx精品hd专区 | 手机在线看a | 国产伦精品一区二区三区综合网 | 亚洲欧洲国产码专区在线观看 | 亚洲乱亚洲乱妇在线 | 久久国产福利国产秒拍飘飘网 | 国产精品www夜色视频 | 无码精品国产dvd在线观看9久 | 成人免费毛片视频 | 成人小视频在线播放 | 国产黄色激情视频 | 激情无码人妻又粗又大中国人 | 国产成人综合一区二区三区 | 日本中出中文字幕 | 荡女乱翁床第高h | 柠檬福利视频导航 | 玩弄少妇秘书人妻系列 | 国产片av国语在线观看导航 | 天天弄| 女人张开腿让男人桶爽 | 麻豆tv在线观看 | 欧美成人精品激情在线视频 | 中文有码人妻字幕在线 | 天天爽天天爽夜夜爽毛片 | 啃乳做爰猛烈床戏三级 | 特级黄www欧美水蜜桃视频 | 九九九九热精品免费视频点播观看 | 成人一在线视频日韩国产 | 麻豆精品乱码一二三区别蜜臀在线 | 91蝌蚪视频在线观看 | 小辣椒福利视频导航 |