微信小程序雲數據庫怎麼做更新

前言

剛剛接觸微信小程序,往數據庫裏面新增記錄和查詢記錄都很簡單,但是做到數據庫內容更新的時候就遇到了很棘手的問題。

更新後數據庫沒反應?

困擾了我一月有餘的問題,從讓我一開始就沒看懂的openID到後來的雲函數,感覺學的那點Web基礎知識完全不夠用。不過還好,在我軟磨硬泡的功夫下,今晚終於學會了雲函數的寫法和數據的更新操作。

利用雲函數對數據庫進行Update

  1. 建立一個新的雲函數,取名叫做updateInfo

在這裏插入圖片描述

2.在index.js裏面寫如下代碼,以更新用戶暱稱爲示範

// 雲函數入口文件
const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database();

// 雲函數入口函數
exports.main = async (event, context) => {
  try {
    return await db.collection("user").doc(event._id).update({
      data: {
        nickname: event.nickname
      }
    })
  } catch (e) {
    console.error(e)
  }
}

雲函數是有固定模版的,如果你不熟悉,你可以新建一個雲函數,打開一看,其實裏面已經寫好模版了,我們要做的就是更改一下main就行了。

3.放好需要的參數

我一直不明白openID怎麼用,但是我相信我軟磨硬泡的功夫還是會搞懂的,暫且放一放。

在雲開發數據庫裏面,開發者不用設置主鍵,系統會自動分配一個_id作爲記錄的主鍵。我們如果想要修改數據庫裏面的一條記錄,就先查詢數據庫,獲得_id,放到doc()裏面。db.collection()裏面放好你要使用的數據庫的名字,我的叫做user,

 data: {
        nickname: event.nickname
      }

這裏面放你要修改的數據,相當於覆蓋原來的數據,左邊的nickname是數據庫裏面字段,右邊的是我們在前端準備好的紙。

4.上傳雲函數

在這裏插入圖片描述
點擊上傳並部署:雲端安裝依賴和上傳並部署:所有文件。

系統會自動部署好所有的雲函數。

使用雲函數

  wx.cloud.callFunction({
          name: 'updateInfo',
          data: {
            _id: id,
            nickname:nickname1
          },
          success: res => {
            console.log('更新數據成功')
            console.log(nickname1)
          }
        })

一般來說我們都是在前端頁面的文本框裏面輸入值,點擊按鈕提交修改。

那麼按鈕上面可以設置js事件。

就像普通的事件觸發一樣,取個函數名,在函數裏面把上述代碼放進去就行了,會自動調用的,很方便。

小結

因爲微信雲開發控制檯的數據庫對於讀寫的權限比較低,但是隻能由創建者做一些別的輸入,所以不方便。雲函數的存在讓權限在保持較高的水準的同時,也方便了用戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章