宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見(jiàn)問(wèn)題
產(chǎn)品動(dòng)態(tài)
精選推薦

微信小程序云開(kāi)發(fā)快速入門(mén)(1/4)

管理 管理 編輯 刪除

什么是云開(kāi)發(fā)?

云開(kāi)發(fā)是可以幫助我們快速成為全棧的一種后端云服務(wù),采用的是Serverless的架構(gòu)。開(kāi)發(fā)者無(wú)須搭建服務(wù)器,可直接使用其中的云數(shù)據(jù)庫(kù)、云存儲(chǔ)、云函數(shù)等云服務(wù)基礎(chǔ)功能。

那么這個(gè)時(shí)候你可能會(huì)想,這和現(xiàn)在的傳統(tǒng)開(kāi)發(fā)模式有什么區(qū)別呢?下面通過(guò)現(xiàn)實(shí)生活中蓋房子的過(guò)程來(lái)了解傳統(tǒng)開(kāi)發(fā)模式與云開(kāi)發(fā)模式的區(qū)別。

如果傳統(tǒng)方式來(lái)蓋房子需要6步:
1)將房子的地基打好,設(shè)計(jì)整理結(jié)構(gòu)。(后端云服務(wù)基礎(chǔ)架構(gòu))
2)打地梁,地梁也是決定房子是否穩(wěn)固的關(guān)鍵。(搭建云數(shù)據(jù)庫(kù))
3)主體的砌筑,將房子的基本結(jié)構(gòu)蓋好。(搭建云存儲(chǔ))
4)在步屋內(nèi)填上土,砸夯,將地面砸實(shí)。(搭建云函數(shù))
5)在屋頂鋪上水泥,封實(shí)。(提供靜態(tài)托管和擴(kuò)展能力)
6)裝修成自己喜歡的風(fēng)格。(編寫(xiě)業(yè)務(wù)需求邏輯代碼)

而云開(kāi)發(fā)模式只有一步,即裝修成自己喜歡的風(fēng)格??梢钥吹綀D1-1展示的是傳統(tǒng)開(kāi)發(fā)需要管理的基礎(chǔ)資源與云開(kāi)發(fā)需要管理的基礎(chǔ)資源的對(duì)比,可以幫助我們更清晰的了解兩者之間的差距。

f9cf0202307271118001472.png

圖1-1 傳統(tǒng)開(kāi)發(fā)需要管理的基礎(chǔ)資源VS云開(kāi)發(fā)需要管理的基礎(chǔ)資源

就這一步即可。云開(kāi)發(fā)提供完整的后端云服務(wù),提供數(shù)據(jù)庫(kù)、存儲(chǔ)、函數(shù)、靜態(tài)托管等基礎(chǔ)能力,以及擴(kuò)展能力,無(wú)須管理基礎(chǔ)架構(gòu)。相比較傳統(tǒng)的開(kāi)發(fā)模式,云開(kāi)發(fā)至少可節(jié)省50%的人力成本、交付效率提升70%。

云開(kāi)發(fā)模式調(diào)整

在此之前我們需要把原來(lái)碼仔備忘錄項(xiàng)目改成云開(kāi)發(fā)項(xiàng)目,所以需要先把項(xiàng)目從項(xiàng)目管理中先刪除。(如果是直接新建的云開(kāi)發(fā)項(xiàng)目可以忽略這一步)

首先,先進(jìn)入小程序項(xiàng)目管理頁(yè)面:

a1f7b202307271118224821.png

然后點(diǎn)擊右上角「管理」按鈕進(jìn)入該頁(yè)面的管理狀態(tài)。

2c868202307271118349620.png

然后選中你之前的單機(jī)版本勾選進(jìn)行刪除即可。

59f67202307271118457997.png

接下來(lái)我們?cè)趯?dǎo)入項(xiàng)目界面對(duì)云開(kāi)發(fā)進(jìn)行勾選即可。

b4e61202307271118555640.png

這個(gè)時(shí)候進(jìn)入我們會(huì)發(fā)現(xiàn)小程序開(kāi)發(fā)工具自動(dòng)給我們生成了一套云開(kāi)發(fā)Demo,我們先直接處理掉。

a14e8202307271119056346.png

1dab2202307271140236819.png

1e8c0202307271119137542.png

意思就是找不到小程序云開(kāi)Demo代碼的里面的一些模塊,這個(gè)不用理會(huì)直接先把Demo代碼全部刪除。

02617202307271119224871.png

刪除后我們就可以看到正常的頁(yè)面渲染了。

cf411202307271119314729.png

回到正常狀態(tài)下,我們接下來(lái)要改造的就是數(shù)據(jù)操作這塊的業(yè)務(wù)。

數(shù)據(jù)緩存改造云開(kāi)發(fā)

在改造之前我們先要梳理思路。

  1. 首先我們先通過(guò)之前學(xué)習(xí)過(guò)抽象方法。
  2. 把所有和數(shù)據(jù)操作相關(guān)的方法都抽取到一個(gè)js類(lèi)里面,這樣便于維護(hù)。
  3. 將所有的方法替換成云數(shù)據(jù)庫(kù)的操作函數(shù)。

抽象數(shù)據(jù)操作API

我們?cè)诟夸浵旅嫘略?api 的文件夾,然后在其文件夾下面新增一個(gè) memo.js 用于存放所有備忘錄的操作API。

782e8202307271119468540.png

梳理下有哪些方法:

  1. 獲取備忘錄列表
  2. 獲取備忘錄詳情
  3. 新增備忘錄信息
  4. 刪除備忘錄信息
  5. 修改備忘錄信息

先給相關(guān)的方法取好函數(shù)名稱(chēng),然后進(jìn)行導(dǎo)出聲明。
memo.js 完整代碼

3c53f202307271138124393.png

首先我們來(lái)實(shí)現(xiàn)獲取備忘錄列表,在列表頁(yè)面 onShow 函數(shù)中會(huì)被調(diào)用。

6c892202307271132413221.png

在這個(gè)時(shí)候setData是頁(yè)面操作函數(shù),所以我們要抽象的部分是:

3953d202307271132507074.png

接下來(lái)我們就把這段代碼放在memo.js里面去。

memo.js 關(guān)于 getMemoList 的代碼片段

fd710202307271133053889.png

然后替換成列表頁(yè)面的調(diào)用,先引入memo的獲取 getMemoList 函數(shù)。
list.js 頭部引入代碼片段

ec80920230727113321184.png

引入后在 onShow 函數(shù)中使用
在 onShow 所有代碼片段

701bd202307271133313579.png

采取同樣的方式,我們可以把之前的獲取詳情、刪除、修改都抽象到 memo.js 中:
memo.js 所有代碼

77ddb202307271138491596.png

在相應(yīng)業(yè)務(wù)場(chǎng)景進(jìn)行調(diào)用,調(diào)用之前都要先引入方法才行。由于引入代碼相對(duì)重復(fù),下面就不貼引入代碼了,只貼使用代碼。

刪除代碼方法調(diào)用:
list.js 中 del 函數(shù)所有代碼

27ce020230727113349464.png

查看備忘錄詳情調(diào)用:
edit.js 中 onLoad 函數(shù)所有代碼

cd54b202307271133594772.png

新增和刪除方法調(diào)用:
edit.js 中 save 函數(shù)中的關(guān)于保存和修改的代碼片段

5ba61202307271134119380.png

到這里我們就完成了第一步,先抽取數(shù)據(jù)操作對(duì)象,然后我們要進(jìn)行云數(shù)據(jù)庫(kù)到操作了。

操作云數(shù)據(jù)庫(kù)

初始化數(shù)據(jù)庫(kù)

首先我們先進(jìn)入云開(kāi)發(fā)控制臺(tái)。

a1dc0202307271120312319.png

然后選中「數(shù)據(jù)庫(kù)」。

云開(kāi)發(fā)提供了一個(gè) JSON 數(shù)據(jù)庫(kù),顧名思義,數(shù)據(jù)庫(kù)中的每條記錄都是一個(gè) JSON 格式的對(duì)象。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)集合(相當(dāng)于關(guān)系型數(shù)據(jù)中的表),集合可看做一個(gè) JSON 數(shù)組,數(shù)組中的每個(gè)對(duì)象就是一條記錄,記錄的格式是 JSON 對(duì)象。

9de04202307271120419248.png

我們會(huì)發(fā)現(xiàn)沒(méi)有可用的集合,再次新建一個(gè)集合 memo,用于存放備忘錄數(shù)據(jù)。

dc1b9202307271120513123.png

新增一條數(shù)據(jù)

我們先手動(dòng)新增一條測(cè)試數(shù)據(jù)看看,點(diǎn)擊「添加記錄」。

18f39202307271121009958.png

e3655202307271134265548.png

我們用以上測(cè)試數(shù)據(jù)添加進(jìn)去

aa610202307271121127561.png

除此之外我們可以看到可以添加多種不同類(lèi)型的數(shù)據(jù),云開(kāi)發(fā)數(shù)據(jù)庫(kù)提供以下幾種數(shù)據(jù)類(lèi)型:

  • String:字符串
  • Number:數(shù)字
  • Object:對(duì)象
  • Array:數(shù)組
  • Bool:布爾值
  • Date:時(shí)間
  • Geo:多種地理位置類(lèi)型
  • Null

我們先默認(rèn)都用 string 類(lèi)型的數(shù)據(jù),新增完成之后就可以做memo集合中看到一條數(shù)據(jù)了。

94c01202307271121258093.png

數(shù)據(jù)表已經(jīng)有數(shù)據(jù)了,那么我們?cè)趺传@???

獲取數(shù)據(jù)庫(kù)數(shù)據(jù)

我們回到小程序編輯臺(tái),對(duì)我們的獲取數(shù)據(jù)方法進(jìn)行下改造。

5c339202307271134379568.png

這個(gè)是獲取本地的數(shù)據(jù)方法,下面是獲取數(shù)據(jù)庫(kù)方法

bd699202307271134475113.png

當(dāng)我們?nèi)チ斜眄?yè)面進(jìn)行調(diào)用的時(shí)候發(fā)現(xiàn)報(bào)錯(cuò):

9a166202307271121414021.png

原來(lái)是在此之前還需要進(jìn)行云API的初始化。
那么現(xiàn)在問(wèn)題來(lái)了,我們后續(xù)會(huì)遇到大量的調(diào)用云API,那么都需要一開(kāi)始初始化,并且這個(gè)初始化只需要一次,這個(gè)時(shí)候初始化我們應(yīng)該在哪里進(jìn)行調(diào)用呢?
當(dāng)一個(gè)函數(shù)應(yīng)用一開(kāi)始就需要調(diào)用的時(shí)候并且只需要調(diào)用一次,我們可以在app.js的 onLaunch 生命周期中調(diào)用。
app.js 的 onLaunch 函數(shù)代碼片段

ebc0820230727113456881.png

接下來(lái)在看調(diào)用看看,在這里告訴大家一個(gè)調(diào)試技巧,使用調(diào)試器中的Network面板,然后選中Cloud標(biāo)簽進(jìn)行過(guò)濾,在這里我們就可以剛才調(diào)用API請(qǐng)求。

62ef9202307271121577173.png

先看看請(qǐng)求狀態(tài),從狀態(tài)來(lái)看是成功的請(qǐng)求。

a1eb0202307271122105973.png

然后我們?cè)賮?lái)看看返回的數(shù)據(jù):

a9d72202307271122191189.png

明明有一條數(shù)據(jù),為什么獲取不到呢?
因?yàn)樵崎_(kāi)發(fā)數(shù)據(jù)庫(kù)集合讀取權(quán)限問(wèn)題。默認(rèn)我們新建的集合讀取權(quán)限是僅創(chuàng)建則可以讀寫(xiě),第一條測(cè)試數(shù)據(jù)是我們手動(dòng)錄入的,所以沒(méi)有創(chuàng)建者,默認(rèn)權(quán)限于是就讀取不到。
我們可以來(lái)到云開(kāi)發(fā)控制面板,然后找到 數(shù)據(jù)庫(kù)=> 數(shù)據(jù)權(quán)限。

84c91202307271122287273.png

我們把權(quán)限從「僅創(chuàng)建者可讀寫(xiě)」修改為「所有用戶可讀,僅創(chuàng)建者可讀寫(xiě)」試試看。修改完成之后再次調(diào)用獲取方法,看到返回結(jié)果中出現(xiàn)了這條測(cè)試數(shù)據(jù)。

e67bf202307271122374093.png

雖然數(shù)據(jù)出來(lái)了,但是我們會(huì)發(fā)現(xiàn)還有一個(gè)錯(cuò)誤日志。

fef99202307271122464795.png

具體代碼塊:

00eb2202307271122559727.png

原因:在沒(méi)有使用云API之前我們使用的緩存操作API是同步操作返回了具體數(shù)據(jù),而修改后的獲取數(shù)據(jù)方法是異步函數(shù),沒(méi)有給到數(shù)據(jù)到列表頁(yè)面進(jìn)行使用。最終導(dǎo)致list數(shù)據(jù)對(duì)象為空,list的length自然就出現(xiàn)了undefined的錯(cuò)誤提示。

從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)除了可以用以上的實(shí)現(xiàn) success 方法,同樣還支持可以用 Promise 風(fēng)格調(diào)用:
可以簡(jiǎn)單理解成將包裹的回調(diào)函數(shù)調(diào)用方式改成了鏈?zhǔn)秸{(diào)用的回調(diào)函數(shù)

8f553202307271135102375.png

基于 Promise 風(fēng)格調(diào)用,我們可以將函數(shù)拆解成兩部分。接下來(lái)再改造一下,傳遞數(shù)據(jù)的部分代碼:

1.將查詢代碼在 getMemoList 完成

6fb93202307271135244593.png

2.將查詢結(jié)果在列表頁(yè)面進(jìn)行列表渲染

cba9f202307271135359024.png

這樣我們就成功的將數(shù)據(jù)庫(kù)的數(shù)據(jù)顯示出來(lái)了

7473c202307271123157335.png

接下來(lái),我們就來(lái)把所有方法進(jìn)行云API的實(shí)現(xiàn)。

查看數(shù)據(jù)詳情

在這里我們就不能用index下標(biāo)來(lái),通常與后端交互我們都會(huì)采用ID來(lái)進(jìn)行查詢,每條數(shù)據(jù)都會(huì)生成一個(gè)ID字段,字段名稱(chēng)為_(kāi)id。

19b7620230727112327362.png

e0887202307271142282107.png

a9194202307271131058492.png

獲取id進(jìn)行頁(yè)面?zhèn)鬟f

92128202307271136021843.png

查詢方法改造,由于通過(guò)id查詢是非常常用的方法,所以云API直接有個(gè)doc方法傳入id即可查詢:
memo.js 中 getMemoInfo 函數(shù)代碼

533eb202307271136111713.png

查詢方法調(diào)用:
edit.js 中 onLoad 函數(shù)代碼

0cac4202307271136209062.png

新增備忘錄數(shù)據(jù)

新增方法改造:
memo.js 中 addMemoInfo 函數(shù)

0b2fb20230727113629407.png

調(diào)用方法:
edit.js 中 save 函數(shù)新增邏輯代碼片段

7f1b8202307271136406222.png

新增成功后會(huì)返回新增數(shù)據(jù)的id信息。

3d072202307271123576487.png

然后在數(shù)據(jù)庫(kù)當(dāng)中就可以看到新增的數(shù)據(jù)了。
d2ec6202307271124076802.png

5c01c202307271142489687.png

ba8a4202307271124196589.png

然后在看下列表返回的數(shù)據(jù),只有自己新增的那條數(shù)據(jù)了。

e7e16202307271124282584.png

修改備忘錄數(shù)據(jù)

修改方法改造:
memo.js 中 updateMemoInfo 函數(shù)。

e4a6f202307271136505664.png

之前修改的邏輯是采用的刪除之后再新增做的“假”修改,這次我們直接采用修改方法。
edit.js 中 save 函數(shù)修改邏輯代碼片段

fdd22202307271136585575.png

返回結(jié)果中的 updated 是代表修改成功數(shù)據(jù)的數(shù)量

ec921202307271124445665.png

刪除備忘錄數(shù)據(jù)

刪除方法改造:
memo.js 中 deleteMemoInfo 函數(shù)

dc1a6202307271137078113.png

調(diào)用方法:
list.js 中 del 函數(shù)

761b4202307271137218586.png

在這里要注意的是刪除之后還需要調(diào)用查詢所有數(shù)據(jù)方法對(duì)列表更新。

50bf9202307271125036092.png

返回值 removed 為刪除數(shù)量。

總結(jié)

在本小節(jié)我們使用云API在小程序端操作了云數(shù)據(jù)庫(kù),學(xué)習(xí)了以下函數(shù):

  • 使用 get() 進(jìn)行了數(shù)據(jù)庫(kù)的查詢
  • 使用 add() 進(jìn)行了數(shù)據(jù)添加
  • 使用 update() 進(jìn)行了數(shù)據(jù)修改
  • 使用 remove() 進(jìn)行了數(shù)據(jù)刪除

在這里我們就已經(jīng)完成了使用云數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)備忘錄數(shù)據(jù)。

請(qǐng)登錄后查看

CRMEB-慕白寒窗雪 最后編輯于2023-08-04 17:02:21

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無(wú)簡(jiǎn)介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
2248
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見(jiàn)問(wèn)題 產(chǎn)品動(dòng)態(tài) 精選推薦 首頁(yè)頭條 首頁(yè)動(dòng)態(tài) 首頁(yè)推薦
取 消 確 定
回復(fù)
回復(fù)
問(wèn)題:
問(wèn)題自動(dòng)獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動(dòng)修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請(qǐng)輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊(cè)
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開(kāi)源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服