小程序雲開發--雲函數操作數據庫


之前學習小程序雲開發的時候,發現關於雲函數操作數據庫的內容在網上非常的少。

想了想,不如自己出個教程。

小程序雲函數運行的環境是Node.js 8.9 , Node.js 是運行在服務端的 JavaScript,如果你熟悉Javascript,那么你將會很容易的學會Node.js。

我們分為增改查3個部分來介紹。


 

1.准備

 

我們在雲控制台創建個數據集合

確保自己是處在雲開發環境下,本地雲函數路徑和雲端一致,

右鍵選中自己的環境,完成雲函數的同步與更新

 

2.雲函數操作數據庫--增

 服務端寫法:

funcadd 雲函數寫法

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

cloud.init()
const db = cloud.database()
// 雲函數入口函數
exports.main = async (event, context) => {
  var filedvalue1 = event.data1
  var filedvalue2 = event.data2
  try {
    return await db.collection('mydata').add({
      data:{
        filed1:filedvalue1,
        filed2:filedvalue2
      }
    })
  } catch (e) {
    console.log(e)
  }
}

 

 

本地調用寫法(確保在調用雲函數之前在js 文件首部引入

const db = wx.cloud.database()      ):
wx.cloud.callFunction({
      name:'funcadd',
      data:{
        data1:'kindear',
        data2:'真帥'
      },success:function(res){
        console.log(res)
      },fail:function(res){
        console.log(res)
      }
    })

 

  

調用成功返回結果:

result._id 是這個記錄的唯一標識碼,可以設置一個變量記錄下來,用作之后的更新刪除等操作。

我們查看數據集合

 

 這個數據已經被成功記錄。

 

 

 

 3.雲函數操作數據庫--改

 funcupdate 雲函數寫法

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

cloud.init()
const db = cloud.database()
// 雲函數入口函數
exports.main = async (event, context) => {
  var docid = event.docid
  var vdata1 = event.data1
  var vdata2 = event.data2
  try {
    return await db.collection('mydata').doc(docid).update({
      data: {
        filed1:vdata1,
        filed2:vdata2
      }
    })
  } catch (e) {
    console.log(e)
  }
}

 

  

本地調用寫法

 wx.cloud.callFunction({
      name:'funcupdate',
      data:{
        docid:'W-eiILdokuiPGKeC',
        data1:'chd',
        data2:'cool'
      },success:function(res){
        console.log(res)
      },fail:function(res){
        console.log(res)
      }
    })

 

  

調用成功控制台結果:

 

 

 4.雲函數操作數據庫--查

集合的查詢操作,用雲函數能比直接在本地調用查詢到更多條的記錄,只需要你知道查詢的字段名和對應的值就可以,

 funcquery 雲函數,這個是根據 id查詢的,同樣也可以根據vdata1,vdata2 等信息來進行查詢操作

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

cloud.init()
const db = cloud.database()
// 雲函數入口函數
exports.main = async (event, context) => {
  var docid = event.docid
  var vdata1 = event.data1
  var vdata2 = event.data2
  try{
    return await db.collection('mydata').where({
      _id: docid
    }).get()
  }catch(e){
    console.log(e)
  }
}

 

  

小程序調用:

 wx.cloud.callFunction({
      name:'funcquery',
      data:{
        docid:'W-eiILdokuiPGKeC',
        data1:'chd',
        data2:'cool'
      },success:function(res){
        console.log(res)
      },fail:function(res){
        console.log(res)
      }
    })

 

  

控制台信息打印

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM