小程序云開發(fā)之坑

小程序云開發(fā)坑

  • 一個(gè)小程序賬號(hào)可以有多個(gè)云環(huán)境,通常我們頁只有一個(gè)。所以在小程序中或者云函數(shù)中的初始化代碼都沒有指定環(huán)境的ID。
App({
  onLaunch: function() {
    if (!wx.cloud) {
      console.error('請使用 2.2.3 或以上的基礎(chǔ)庫以使用云能力')
    } else {
      wx.cloud.init({
        env: "xxxx" // 小程序云環(huán)境id
        traceUser: true
      })
    }

    this.globalData = {}
  }
})
  • 在云函數(shù)中對(duì)云數(shù)據(jù)庫進(jìn)行CURD時(shí)候,一定要注意:
    比如我們對(duì)一個(gè)collection進(jìn)行修改
   db
     .collection(collection)
     .where({
       _openid: wxContext.OPENID
     })
     .update({
       data: form
     })

如果你的代碼像上面那樣,那么這個(gè)db操作將不會(huì)被執(zhí)行,并且云函數(shù)的日志也不會(huì)進(jìn)行報(bào)錯(cuò)。你必須要把代碼改為

   return await db
     .collection(collection)
     .where({
       _openid: wxContext.OPENID
     })
     .update({
       data: form
     })

沒錯(cuò),你必須立即返回,并且添加await關(guān)鍵字,這個(gè)return會(huì)將db的update操作后的Promise的入?yún)⒆鳛樵坪瘮?shù)的返回值。

  • 對(duì)于能不能進(jìn)行db的嵌套操作,比如“先根據(jù)openid查詢用戶記錄,然后進(jìn)行修改”,代碼如下:
return await db
      .collection(collection)
      .where({
        _openid: wxContext.OPENID
      })
      .get()
      .update({
        data: form
      })

這個(gè)操作能否執(zhí)行,沒有測試過。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容