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

027-81331413

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

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

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

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

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

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

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

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

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

注冊(cè)

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

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
 },
 // 返回主頁(yè)面
 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ù)庫(kù)
  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ù)庫(kù)。

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ù)庫(kù)
   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)聽(tīng)頁(yè)面顯示
  */
 onShow: function() {
  this.setData({
   userName: app.appData.account.userName,
   userPassword: app.appData.account.userPassword
  })
 },
})

登錄

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

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
主站蜘蛛池模板: 伊人永久 | 最新国产精品拍自在线播放 | 国产精品av在线 | 国产视频亚洲精品 | 91视频成人免费 | 精品国产乱码久久久久 | 久久激情视频 久久 | 97日日| 亚洲成人精品国产 | 天天操天天射天天 | 最近中文字幕在线播放 | 日韩av专区| 超碰人人草人人 | 在线视频日韩欧美 | 国产精品久久久久久久久久三级 | 91精品电影 | 国产精品黄色在线观看 | 91精品第一页 | 成人av在线亚洲 | 久久 亚洲视频 | 国产精品免费高清 | 国产 一区二区三区 在线 | 免费看的毛片 | 在线观看成人小视频 | 99精品一区 | 992tv人人网tv亚洲精品 | 久久午夜免费观看 | 黄网站a | 国产区在线看 | 国产精品男女啪啪 | 成人久久久久久久久 | 欧美成人性战久久 | 国产成人av电影在线观看 | 国产成人精品午夜在线播放 | 亚洲精品1区2区3区 超碰成人网 | 在线观看中文字幕一区二区 | 国产精品视频区 | 9999精品视频 | 国产精品6999成人免费视频 | 色爱成人网 | 欧美日韩免费视频 | 六月激情| 欧美日韩高清国产 | av电影 一区二区 | 久久久久久久久毛片精品 | 中文字幕文字幕一区二区 | 三级黄在线| 久久精品福利视频 | av品善网 | 特级西西444www大精品视频免费看 | 又污又黄网站 | 少妇18xxxx性xxxx片| 狠狠躁日日躁狂躁夜夜躁av | 国产v视频 | 97日日碰人人模人人澡分享吧 | 免费电影播放 | 看av免费网站 | 日韩在线视频网址 | 五月天伊人网 | 久久久在线视频 | 欧美视屏一区二区 | 午夜私人影院 | 国产丝袜美腿在线 | 日本激情视频中文字幕 | 免费高清在线观看电视网站 | 99r精品视频在线观看 | 91精品久久久久久 | 四虎在线免费观看视频 | 欧美日韩另类视频 | av电影在线播放 | 亚洲成av人影院 | 免费污片 | 国产麻豆果冻传媒在线观看 | 成人羞羞视频在线观看免费 | 久久在线免费观看 | 亚洲免费小视频 | 欧美精品xx | 午夜精品视频免费在线观看 | 香蕉成人在线视频 | 亚洲精品综合在线 | 欧美一进一出抽搐大尺度视频 | 青草视频在线 | 日韩精品视频在线观看网址 | 97色视频在线 | 日韩v欧美v日本v亚洲v国产v | 极品嫩模被强到高潮呻吟91 | 五月婷丁香网 | 亚洲精品播放 | 中文字幕在线观看完整版电影 | 国产精品一区二区免费看 | 久久成人国产精品免费软件 | av九九九| 日本黄色免费播放 | 91视频久久 | 区一区二区三在线观看 | 欧美激情视频一二三区 | 亚洲高清免费在线 | 黄色软件在线观看免费 | 99视频在线精品免费观看2 |