知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
微信小程序云開發(fā)(1)——初始化、云數(shù)據(jù)庫基礎(chǔ)、云函數(shù)基礎(chǔ)
發(fā)表時(shí)間:2020-10-3
發(fā)布人:葵宇科技
瀏覽次數(shù):194
微信小程序的注冊(cè)、微信小程序開發(fā)工具的下載等網(wǎng)上有很多資料,我就省略了,直接從云開發(fā)初始化開始。
一、初始化
在“project.config.json”文件第2行添加
"cloudfunctionRoot":"cloud",//云函數(shù)的目錄
在“資源管理器”新建一個(gè)同名的目錄
在“app.js”文件里將onLaunch: function () {}中的內(nèi)容刪除,改為如下內(nèi)容:
onLaunch: function () {
wx.cloud.init({
env:"tiaxxxxxxxxxxx1-edyoy" //這里為云環(huán)境ID,可以在“云開發(fā)控制臺(tái)”--“設(shè)置”里找到
})
}
這里由于微信小程序的調(diào)試基礎(chǔ)庫默認(rèn)的2.0.x,這里會(huì)報(bào)如下錯(cuò)誤:
VM701:1 thirdScriptError
Cannot read property 'init' of undefined;at App lifeCycleMethod>function
TypeError: Cannot read property 'init' of undefined
解決方法是將調(diào)試基礎(chǔ)庫換成高版本,注意某些低版本的微信不支持太高版本的基礎(chǔ)庫具體操作方式如下圖所示
二、云數(shù)據(jù)庫
1、云數(shù)據(jù)庫初始化
在“index.js”文件下輸入如下內(nèi)容:
//數(shù)據(jù)庫初始化,"list"是數(shù)據(jù)庫中的表名
const DB = wx.cloud.database().collection("test")
然后需要在云開發(fā)控制臺(tái)新建一個(gè)與上面數(shù)據(jù)庫同名的數(shù)據(jù)庫
2、向數(shù)據(jù)庫中新增數(shù)據(jù)
在“index.wxml”文件中添加如下內(nèi)容:
//在頁面添加一個(gè)按鈕,點(diǎn)擊之后向數(shù)據(jù)庫添加數(shù)據(jù)
<button bindtap="addData">添加數(shù)據(jù)</button>
在“index.js”文件的page({})中,輸入如下內(nèi)容:
Page({
//添加數(shù)據(jù)
addData(){
DB.add({
//要添加的數(shù)據(jù)
data:{
name : "Jim",
age : "22",
},
//添加成功時(shí)的操作
success(res){
//打印“添加成功”
console.log("添加成功",res)
},
//添加失敗時(shí)的操作
fail(res){
console.log("添加失敗",res)
},
})
}
})
點(diǎn)擊“編譯”,點(diǎn)擊調(diào)速器中的“添加數(shù)據(jù)”按鈕,可以看到輸出了“添加成功”字樣,然后在云開發(fā)控制臺(tái),點(diǎn)擊“刷新”,可以看到數(shù)據(jù)已添加成功。
獲取用戶輸入的信息,添加到云數(shù)據(jù)庫
在"index.wxml"文件中創(chuàng)建2個(gè)輸入框
<input placeholder="請(qǐng)輸入名字" bindinput="addName"></input>
<input placeholder="請(qǐng)輸入年齡" bindinput="addAge"></input>
在"index.js"文件里,在page({})外添加“name”和“age”2個(gè)全局變量;在page({})里添加“addName”和“addAge”2個(gè)方法
let name = ""
let age = ""
Page({
addName(event){
name = event.detail.value
},
addAge(event){
age = event.detail.value
},
//添加數(shù)據(jù)
addData(){
DB.add({
//要添加的數(shù)據(jù)
data:{
name : name,
age : age,
},
//添加成功時(shí)的操作
success(res){
//打印“添加成功”
console.log("添加成功",res)
},
fail(res){
console.log("添加失敗",res)
},
})
},
})
編譯運(yùn)行,在輸入框輸入“名字”和“年齡”,在后臺(tái)查看數(shù)據(jù)添加結(jié)果
3、查詢數(shù)據(jù)
在“index.wxml”文件中添加如下內(nèi)容:
//在頁面添加一個(gè)按鈕,點(diǎn)擊之后向數(shù)據(jù)庫添加數(shù)據(jù)
<button bindtap="getData">查詢數(shù)據(jù)</button>
在“index.js”文件的Page({})中,輸入如下內(nèi)容:
getData(){
DB.get({
success(res){
console.log("查詢成功",res)
},
fail(res){
console.log("查詢失敗",res)
},
})
},
點(diǎn)擊“編譯”,點(diǎn)擊調(diào)速器中的“查詢數(shù)據(jù)”按鈕,可以看到輸出了“查詢成功”字樣
4、刪除數(shù)據(jù)
在“index.wxml”中添加一個(gè),用來輸入要?jiǎng)h除的數(shù)據(jù)的ID
<input placeholder="請(qǐng)輸入數(shù)據(jù)ID" bindinput="delDataID"></input>
在“index.js”中添加一個(gè)全局變量dataid,在page({})中添加如下代碼:
let dataid = ""
Page({
delDataID(event){
dataid = event.detail.value
},
delData(){
DB.doc(dataid).remove({
success(res){
console.log("刪除成功",res)
},
fail(res){
console.log("刪除失敗",res)
},
})
},
})
編譯運(yùn)行。使用之前的查詢數(shù)據(jù)或者從后臺(tái)復(fù)制一組數(shù)據(jù)的ID,在輸入框中輸入該ID,點(diǎn)擊“刪除數(shù)據(jù)”按鈕,到后臺(tái)查看數(shù)據(jù)是否刪除
刪除前數(shù)據(jù)庫里有3條數(shù)據(jù)
執(zhí)行刪除后數(shù)據(jù)庫里只有2條數(shù)據(jù),被刪除的數(shù)據(jù)ID已經(jīng)找不到了
5、更改數(shù)據(jù)
在“index.wxml”中添加3個(gè)和一個(gè)
<input placeholder="請(qǐng)輸入數(shù)據(jù)ID" bindinput="updateID"></input>
<input placeholder="請(qǐng)輸入名字" bindinput="updateName"></input>
<input placeholder="請(qǐng)輸入年齡" bindinput="updateAge"></input>
<button bindtap="updateData">修改數(shù)據(jù)</button>
在“index.js”的page({})中添加如下內(nèi)容:
Page({
updateID(event){
dataid = event.detail.value
},
updateName(event){
name = event.detail.value
},
updateAge(event){
age = event.detail.value
},
updateData(){
DB.doc(dataid).update({
data : {
name : name,
age : age,
},
success(res){
console.log("修改成功",res)
},
fail(res){
console.log("修改失敗",res)
},
})
}
})
編譯運(yùn)行,分別輸入要修改數(shù)據(jù)的ID、名字和年齡,點(diǎn)“修改數(shù)據(jù)”按鈕,到后臺(tái)查看數(shù)據(jù)是否修改成功
三、創(chuàng)建云函數(shù)
右鍵之前新建的“cloud”文件夾,選擇“新建Node.js云函數(shù)”
1、云函數(shù)例子(1)——計(jì)算2個(gè)數(shù)的和
我們創(chuàng)建一個(gè)云函數(shù),取名叫“plus”,等右上角出現(xiàn)云函數(shù)上傳成功的提示,到后臺(tái)可以看到剛創(chuàng)建的云函數(shù)。
在“cloud/plus/index.js”文件里,
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init() //這2行代碼是初始化,不要改動(dòng)
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => { //{}里面的內(nèi)容可以換成自己的代碼
let a = parseInt(event.aaa); //數(shù)據(jù)是從event中獲取。對(duì)輸入的數(shù)據(jù)取整
let b = parseInt(event.bbb);
return a + b
}
每次修改完“cloud/plus/index.js”文件,都需要右鍵“plus”文件夾選擇“上傳并部署:云端安裝依賴(不上傳node_modules)”
在“index.wxml”里添加如下代碼:
<input placeholder="請(qǐng)輸入第一個(gè)數(shù)" bindtap="firstNumber"></input>
<input placeholder="請(qǐng)輸入第二個(gè)數(shù)" bindtap="secendNumber"></input>
<button>求和</button>
在“pages/index/index.js”里添加如下內(nèi)容:
let AAA = ""
let BBB = ""
Page({
firstNumber(event){
AAA = event.detail.value
},
secendNumber(event){
BBB = event.detail.value
},
add(){
wx.cloud.callFunction({
name : "plus", //需要調(diào)用云函數(shù)的名字
data : {
aaa : AAA, //把輸入的第一個(gè)數(shù)賦值給aaa。這里的鍵名必須與云函數(shù)的參數(shù)名相同
bbb : BBB,
},
success(res){
console.log("計(jì)算成功",res)
},
fail(res){
console.log("計(jì)算失敗",res)
},
})
}
})
編譯運(yùn)行,輸入2個(gè)數(shù),點(diǎn)擊“求和”按鈕,驗(yàn)證結(jié)果是否正確
2、云函數(shù)例子(2)——獲取用戶的openid
其實(shí)新建一個(gè)云函數(shù)時(shí),系統(tǒng)自動(dòng)生成那段代碼就是獲取用戶openid的,代碼如下
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
3、云函數(shù)例子(3)——查詢?cè)茢?shù)據(jù)庫中的數(shù)據(jù)
直接使用云函數(shù)的API也可以操作云數(shù)據(jù)庫,但是有許多限制,例如只能查詢20條數(shù)據(jù)、受數(shù)據(jù)表的權(quán)限限制。而使用云函數(shù)查詢?cè)茢?shù)據(jù)庫不受以上限制,而且可以實(shí)現(xiàn)更多功能。
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
return cloud.database().collection("test").get();
}
相關(guān)案例查看更多
相關(guān)閱讀
- 政府網(wǎng)站建設(shè)服務(wù)
- 汽車報(bào)廢拆解管理系統(tǒng)
- 江蘇小程序開發(fā)
- 北京小程序制作
- 網(wǎng)絡(luò)公司排名
- 云南小程序制作
- 全國前十名小程序開發(fā)公司
- 楚雄網(wǎng)站建設(shè)公司
- 花農(nóng)小程序
- 出入小程序
- 網(wǎng)站建設(shè)招商
- 小程序開發(fā)平臺(tái)前十名
- 汽車回收管理
- 網(wǎng)站建設(shè)公司網(wǎng)站
- 汽車拆解管理軟件
- 網(wǎng)站建設(shè)制作
- 云南網(wǎng)站建設(shè)招商
- 網(wǎng)站排名優(yōu)化
- 網(wǎng)站建設(shè)首選
- 云南網(wǎng)站建設(shè)一條龍
- 網(wǎng)站建設(shè)首頁
- 網(wǎng)站小程序
- 網(wǎng)絡(luò)公司聯(lián)系方式
- .net網(wǎng)站
- 云南網(wǎng)站建設(shè)報(bào)價(jià)
- 網(wǎng)站建設(shè)
- 云南網(wǎng)站建設(shè)費(fèi)用
- 云南網(wǎng)絡(luò)推廣
- 搜索排名
- 小程序模板開發(fā)公司