最新更新的微信 web 開發者工具支持了云開發
和之前免費提供的自動部署的測試環境不同,這次是生產和開發都不需要一臺獨立的服務器了
取而代之的是云文件,云函數和云數據庫(和 Bmob 云有點像)
更新到最新的微信 web 開發者工具就行了
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html
新建項目,使用云開發快速啟動項目模板(必須是自己的 APPID,測試 APPID 沒有這個模板)
其實就是一個在小程序中使用比較方便的對象存儲
API
wx.cloud.uploadFile // 如果上傳至同一路徑則是覆蓋寫 wx.cloud.downloadFile wx.cloud.deleteFile wx.cloud.deleteFile
圖片上傳 Demo
wx.chooseImage({ success: function(res) { // 獲取文件路徑 const filePath = res.tempFilePaths[0] // 定義上傳位置,不要以/開頭 const cloudPath = 'upload/test.png' wx.cloud.uploadFile({ filePath: filePath, cloudPath: cloudPath, success: res => { console.log('[上傳文件] 成功:', res) }, fail: e => { console.error('[上傳文件] 失敗:', e) }, complete: () => { console.log('結束調用') } }) } })
云函數在本地編寫,上傳到云端的 Node.js 運行環境中執行,然后返回結果。可以通過云函數后端 SDK 搭配使用多種服務,比如數據庫和存儲 API(wx-server-sdk)。
定義云函數存放目錄
云函數根目錄下的第一級目錄(云函數目錄)是與云函數名字相同的,如果函數已經上傳到云端運行環境,則會有一個特殊的云圖標
云函數代碼
調用代碼
wx.cloud.callFunction({ name: 'sum', data: { a: 1, b: 2 }, success: res => { console.error('[云函數] [sum] 調用成功:', res) console.log(JSON.stringify(res.result)) }, fail: err => { console.error('[云函數] [sum] 調用失敗:', err) } })
輸出結果存放在 res.result 中,為了看出 event 和 context 的作用,在返回結果中順便返回了這兩個內容,打印了出來
可以看到,event 就是傳入的參數,同時會自動添加 userInfo 信息。context 是云函數的運行環境參數
{ event: { a: 1, b: 2, userInfo: { appId: 'xxxxx', openId: 'xxxxxx' } }, context: { callbackWaitsForEmptyEventLoop: false, memory_limit_in_mb: 256, time_limit_in_ms: 20000, request_id: '422e93b4-b5db-11e8-b8a8-525400e8849e', environ: 'xxxx' }, sum: 3 }
官方介紹說是云開發提供了一個 JSON 數據庫,使用起來也很簡單
先創建一個集合,也就是數據庫的table吧
但是并不要求是每一行的數據結構都一樣