微信小程序與雲開發筆記

 

 

 

 

 

1.操作雲數據庫進行增刪改查(在已經開通雲開發之後):

 

const db=wx.cloud.database()   //1.初始化一個數據庫
Page({
  insertData(){  //2.向數據庫插入數據事件,然後在雲開發->數據庫中->創建一個'user'的空集合
    db.collection('user').add({   //3.連接雲開放的user集合(數據庫),並添加一條數據
      data:{   //要插入的數據
        name:'jerry',
        age:20
      },
      success:(res)=>{  //插入成功
        console.log(res)
      },
      fail:(err)=>{ //插入失敗
        console.log(err)
      }
    })
  }, 
  updataData(){ //4.向雲開發數據中更新數據事件
    db.collection('user').doc('2c94992a5da7d20e06bcd58b28c35ee9').update({   //5.連接雲開放的user集合(數據庫),並根據id更新一條數據
      data: {   //要更新的數據
        age: 28
      },
      success: (res) => {  //插入成功
        console.log(res)
      },
      fail: (err) => { //插入失敗
        console.log(err)
      }
    })
  },
  selectData() {//6.向雲開發數據中查找數據事件
    db.collection('user').where({   //7.連接雲開放的user集合(數據庫),並根據查找age=28的數據     
      name: 'jerry', //要查找的數據        
    }).get().then(res=>{  //查找成功
      console.log(res)
    }).catch(err=>{ //查找失敗
      console.log(err)
    })
  },
  delData(){
    db.collection('user').doc('2c94992a5da7d20e06bcd58b28c35ee9')   //8.連接雲開放的user集合(數據庫),並根據刪除指定id='2c94992a5da7d20e06bcd58b28c35ee9'的一條數據     
    .remove().then(res => {  //刪除成功
      console.log(res)
    }).catch(err => { //刪除失敗
      console.log(err)
    })
  }
})

 

 

2.操作雲函數進行邏輯操作(如計算求和)/操作雲數據庫/獲取用戶openid:

    2.1 新建雲函數:右鍵->新建node.js雲函數(在當前電腦已經安裝Node下): 

    2.2 在雲函數index.js中寫雲函數的邏輯代碼,如求和/獲取openid/批量刪除雲數據庫。(其中package.json是相關依賴和配置)。

   2.3 每次代碼邏輯編輯之後都需要上傳並部署:雲端安裝依賴。

   2.4 在項目中調用雲函數:

/**
1.aceSum/index.js雲函數
exports.main = async (event, context) => {
  return {
    total:event.a + event.b
  }
}
**/
yunFun(){  //1. 調用雲函數求和
    wx.cloud.callFunction({
      name:'aceSum',  //需要調用哪個雲函數的名字
      data:{  //調用雲函數傳遞的參數
        a:2,
        b:3
      }
    }).then(res=>{
      console.log(res)
    }).catch(err=>{
      console.log(err)
    })
},


/**
2.login/index.js雲函數
const cloud = require('wx-server-sdk')
cloud.init({  // 初始化 cloud
  env: cloud.DYNAMIC_CURRENT_ENV
})

exports.main = (event, context) => {
  const wxContext = cloud.getWXContext()
  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
    env: wxContext.ENV,
  }
}
**/

getOpenid() {  //2. 調用雲函數獲取openid
    wx.cloud.callFunction({
      name: 'login',  //需要調用哪個雲函數的名字      
    }).then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })
},
/**
3.batchDel/index.js雲函數
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  try{
    await db.collection('user').where({  //批量刪除雲數據庫,不能通過小程序直接操作,需要通過雲函數操作
      name: 'jerry'
    }).remove();
  }catch(err){
    console.log(err)
  }
}
**/
batchDel() { //3. 調用雲函數批量刪除雲數據庫
    wx.cloud.callFunction({
      name: 'batchDel',  //需要調用哪個雲函數的名字      
    }).then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })
}

 

 

 

3.操作雲存儲進行文件上傳和存儲到雲數據庫:

upload(){ //1. 上傳文件到雲存儲並保存在雲數據庫
    wx.chooseImage({
      count:1,   
      success: (res)=> {
        const tempFilePaths = res.tempFilePaths;//
        wx.cloud.uploadFile({ //上傳文件/圖片到雲存儲
          cloudPath:new Date().getTime()+'.png',
          filePath: tempFilePaths[0],
          success:(result)=>{
            console.log(result)
            db.collection('images').add({   
              data: {   
                fileID: result.fileID
              },
              success: (ok) => {  //插入成功
                console.log(ok)
              },
              fail: (err1) => { //插入失敗
                console.log(err1)
              }
            })
          },
          fail:(err)=>{
            console.log(err)
          }
        
        })
      },
    })
  },
  getImages(){  //2.獲取存儲在雲數據庫的文件圖片,根據上傳圖片用戶的openid獲取上傳圖片的在雲數據庫的路徑
    wx.cloud.callFunction({
      name: 'login',      
    }).then(res => {
      console.log(res)
      db.collection("images").where({
        _openid:res.result.openid,
      }).get().then(res1=>{
        console.log(res1.data) //存儲在雲數據庫的文件圖片路徑
      })
    }).catch(err => {
      console.log(err)
    })
  }

 

 

 

 

 

 

 

雲開發教程參考:https://www.imooc.com/learn/1121

 

添加小程序,兌換各種視頻教程/數據資源。



 

 

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