小程式雲開發體驗

祝學友發表於2019-02-28

前言

由於最近組內要開發一個小工具來方便我們進行一個小活動,為了快速開發以供活動使用,所以選擇用小程式來開發。

初次見面

本人是第一次開發小程式,之前只瞭解到它的語法和vue差不多,以為小程式除了有很多微信封裝的api之外,也沒什麼特別的。但當我開啟小程式文件的時候,發現有云開發這一新功能,這個概念實在是新奇。經過一陣閱讀之後大概瞭解到雲開發的特點如下:

  • 每個人都可以免費拿兩臺騰訊雲伺服器
  • 前端可以直接運算元據庫
  • 有云函式的概念
  • 資料庫像是MongoDB,但語法像mySQL

我的第一感覺是這樣的處理能夠讓前端開發者以極快的速度做出一個小應用,大大地解放了生產力。於是二話不說就開始開發了

開發感受

授權

有個功能需要用到使用者的微信頭像和暱稱,想想平時用小程式的體驗,都是進去就會彈個彈窗獲取授權,於是我就找這個api。找了一圈發現現在只能用button來調起這個彈窗,意味著一定要有使用者操作之後才能彈授權彈窗了。

運算元據庫

雲開發可以之前在前端運算元據庫,程式碼類似下面

db.collection("order")
    .where({
        date: 'xxx'
    })
    .get({
        success: res => {
            console.log("[資料庫] [查詢記錄] 成功: ", res);
        },
        fail: err => {
            console.error("[資料庫] [查詢記錄] 失敗:", err);
        }
    });
複製程式碼

這裡有一個需要注意的點,不指定limit的話一次限制取20條,用limit的話限制是100條。
可以運算元據庫之後,感覺寫程式碼的速度突飛猛進,不用再寫介面了,省了很多功夫。

雲函式

一開始覺得沒什麼用,後來看了一下別人的文章,感覺這是為了減少小程式端依賴包的數量,把一些邏輯寫成雲函式在雲端安裝依賴和執行,來使小程式端的程式碼保持輕量。

async/await

沒有這個語法寫一些非同步的邏輯真的很不方便。在小程式中用這個語法會報錯

小程式雲開發體驗
解決方法是:在Facebook的regenerator庫取 regenerator-master/packages/regenerator-runtime 目錄中的 runtime.js 檔案放到需要用這種語法的檔案中,然後

const regeneratorRuntime = require('../../runtime.js');
複製程式碼

這樣就可以正常地使用async/await語法了

總結

總的來說,小程式開發起來體驗還是很不錯的。感覺像是給前端工程師的一個樂高玩具,可以信手拈來,做出自己想做的產品。

相關文章