小程序·云開發(fā)初體驗

小程序·云開發(fā)初體驗

云開發(fā)基本情況

云開發(fā)(Tencent Cloud Base, TCB)是騰訊云為移動開發(fā)者提供的一站式后端云服務(wù)椭盏,它幫助開發(fā)者統(tǒng)一構(gòu)建和管理資源掏颊,免去了移動引用開發(fā)過程中繁瑣的服務(wù)器搭建以及運維艾帐、域名注冊及備案、數(shù)據(jù)接口實現(xiàn)等繁瑣的流程柒爸,讓開發(fā)者可以專注于業(yè)務(wù)邏輯的實現(xiàn)捎稚,而無需理解后端邏輯及服務(wù)器運維知識,開發(fā)門檻更低今野,效率更高。

云開發(fā)能力

  • 云數(shù)據(jù)庫:提供高性能的數(shù)據(jù)庫寫入和查詢服務(wù)催什。通過TCB的SDK宰睡,可以直接在客戶端對數(shù)據(jù)經(jīng)行讀寫,也可以在云函數(shù)中讀寫數(shù)據(jù)旋圆,還可以通過控制臺麸恍,數(shù)據(jù)進(jìn)行可視化的增刪改查等操作。目前云開發(fā)的數(shù)據(jù)庫為Mongodb
  • 存儲:提供高擴展性,低成本艾君、可靠和安全的文件存儲服務(wù)肄方。可以滿足不同場景下的文件訪問管理虹茶。開發(fā)者可以在客戶端和云函數(shù)端通過API直接使用存儲
  • 云函數(shù):(運行環(huán)境node.js)云函數(shù)是在云端運行的函數(shù)隅要,無需購買、搭建服務(wù)器步清,只需編寫函數(shù)代碼并部署到云端廓啊,即可在騰訊云基礎(chǔ)設(shè)施上彈性、安全的運行代碼谴轮。

編程基礎(chǔ)

  • HTML、CSS疮装,務(wù)必掌握flex布局
  • Js推薦更多的使用ES5粘都,ES6,深入了解js事件觸發(fā)機制
  • Node.js運行在服務(wù)端的javascript受啥,云函數(shù)現(xiàn)有唯一支持的語言
  • MongoDB:介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間的產(chǎn)品鸽心,是非關(guān)系型數(shù)據(jù)庫當(dāng)中功能最豐富居暖,最像關(guān)系數(shù)據(jù)庫的。云開發(fā)現(xiàn)有唯一支持的數(shù)據(jù)庫糯景。
  • vue.js現(xiàn)有前端開發(fā)必備能力

云開發(fā)流程

小程序開發(fā)-普通開發(fā):購買服務(wù)器域名,部署服務(wù)器環(huán)境蟀淮,配置SSL證書,配置服務(wù)器信息涨缚,請求調(diào)試

小程序云開發(fā):調(diào)用API

兩種開發(fā)可兼容

云開發(fā)開通與項目初始化

  1. 新建小程序項目策治,必須填寫APPID(不可使用測試號,如果使用測試號你是選不了云開發(fā)的茂翔,騰訊說的履腋,不解釋),后端服務(wù)使用小程序云開發(fā)俐末。

  2. 點擊微信開發(fā)者工具云開發(fā)工具欄開通云開發(fā)(AppID 首次開通云環(huán)境后奄侠,需等待大約 10 分鐘方可正常使用云 API,在此期間官方后臺服務(wù)正在做準(zhǔn)備服務(wù)垄潮,如嘗試在小程序中調(diào)用云 API 則會報 cloud init error:{ errMsg: "invalid scope" } 的錯誤 弯洗,這個時候不要慌,等10分鐘左右就好了)

  3. project.config.json添加字段cloudfunctionRoot用于指定存放云函數(shù)的目錄

  4. 使用云能力前牡整,需先調(diào)用wx.cloud.init方法完成云能力初始化(env:指定云開發(fā)環(huán)境)

  5. 獲取openid(數(shù)據(jù)庫操作大多需要用戶openid逃贝,需要先配置好login云函數(shù)),如遇到未安裝wx-server-sdk模塊沐扳,請先安裝node.js再參考如下鏈接

數(shù)據(jù)庫開發(fā)基礎(chǔ)

上手?jǐn)?shù)據(jù)庫

  • 創(chuàng)建第一個集合:打開控制臺沪摄,選擇“數(shù)據(jù)庫 ”標(biāo)簽頁纱烘,通過“添加集合”入口創(chuàng)建一個集合祈餐。假設(shè)我們要創(chuàng)建一個數(shù)據(jù)查詢小程序,我們創(chuàng)建一個名為counters的集合啤它。創(chuàng)建成功后舱痘,可以看到counters集合管理界面,界面中我們可以添加記錄芭逝、查找記錄、管理索引和管理權(quán)限台妆。

  • 按照快速啟動模板提示進(jìn)行添加記錄胖翰。如需在數(shù)據(jù)表中導(dǎo)入數(shù)據(jù),則json或csv格式的數(shù)據(jù)編碼必須是UTF-8

  • 數(shù)據(jù)類型介紹

    Null 相當(dāng)于一個占位符
    String 字符串
    Number 數(shù)字
    Object 對象
    Array 數(shù)組
    Bool 布爾值
    GeoPoint 地理位置點
    Date 時間
  • 數(shù)據(jù)權(quán)限控制

  • 數(shù)據(jù)庫初始化:開始使用數(shù)據(jù)庫API進(jìn)行增刪改查操作之前懊缺,需要先獲取數(shù)據(jù)庫的引用培他。如下調(diào)用獲取默認(rèn)環(huán)境數(shù)據(jù)庫的引用:

    const db = wx.cloud.database()
    const testDB = wx.cloud.database({
        env:''//測試環(huán)境
    })
    
  • 可以通過在集合對象上調(diào)用add方法往集合中插入一條記錄:

    db.collection('test').add({
      data:{
          test:'插入數(shù)值'
      },
      success:res =>{
          //在返回結(jié)果中會包含新創(chuàng)建的記錄的_id
          this.setData({
              csid:res._id,
              test:'插入數(shù)值'
          })
      }
    })
    
  • 數(shù)據(jù)庫查詢

    db.collection('test').doc('數(shù)值').get({
        success:function(res){
            //res.data包含該紀(jì)錄的數(shù)據(jù)
            console.log(res.data)
        }
    })  
    
  • 其余不做解釋

存儲管理基礎(chǔ)

云函數(shù)架構(gòu)基礎(chǔ)

  • 最基礎(chǔ)的云函數(shù):將兩個數(shù)字相加的函數(shù)作為第一個云函數(shù)示例

    wx.cloud.callFunction({
        name:'add',//要調(diào)用的云函數(shù)的名稱
        data:{//傳遞給云函數(shù)的參數(shù)
            x:1,
            y:2,
        },
        success:res =>{ 
        //成功后的回調(diào)
        },
        fail:err =>{},
        complete:() =>{
            //執(zhí)行完成后
        }
    })
    

    云函數(shù)

    exports.main =(event,context) =>{
        return{
            sum:event.a+event.b
        }
    }
    

    上傳并部署成果之后即可

  • 使用npm:在云函數(shù)中我們可以引入第三方依賴來幫助我們更快的開發(fā)舀凛。云函數(shù)的運行環(huán)境是Node.js。因此我們可以使用npm安裝第三方依賴馋记。

  • 異步返回結(jié)果:經(jīng)常懊烤,我們需要在云函數(shù)中處理一些異步操作,在異步操作完成后再返回結(jié)果給到調(diào)用方冤馏。此時我們可以通過在云函數(shù)中返回一個Promise的方法來完成寄啼。

    //index.js
    export.main = async(event,context) =>{
        return new Promise((resove,reject){
            //在3秒后返回結(jié)果給調(diào)用方(小程序/其他云函數(shù))
            setTimeout(() =>{//定時器
                resove(event.a+event.b)
            },3000)
        })
    }
    

    云函數(shù)運行機制

    • 運行環(huán)境:云函數(shù)運行在云端Linux環(huán)境中,一個云函數(shù)在處理并發(fā)請求的時候會創(chuàng)建多個云函數(shù)實例涕刚,每個云函數(shù)實例之間相互隔離乙帮,沒有公用的內(nèi)存或硬盤空間。云函數(shù)實例的創(chuàng)建驾茴、管理氢卡、銷毀等操作由平臺自動完成。每個云函數(shù)實例都在/tmp目錄下提供了一塊512MB的臨時磁盤空間用于處理單次云函數(shù)執(zhí)行過程中的臨時文件讀寫需求译秦,需要特別注意的是,這塊臨時空間在函數(shù)執(zhí)行完畢后可能被銷毀筑悴,不應(yīng)依賴和假設(shè)在磁盤空間存儲的臨時文件會一直存在。如果需要持久化的存儲砚婆,請使用云存儲功能突勇。
    • 無狀態(tài)函數(shù):云函數(shù)應(yīng)是無狀態(tài)的,冪等的验夯,即一次云函數(shù)的執(zhí)行不依賴上一次云函數(shù)執(zhí)行過程中在運行環(huán)境中殘留的信息摔刁。為了保證負(fù)載均衡,云函數(shù)平臺會根據(jù)當(dāng)前負(fù)載情況控制云函數(shù)實例的數(shù)量共屈,并且會在一些情況下重用云函數(shù)實例拗引,這使得連續(xù)兩次云函數(shù)調(diào)用如果由同一個云函數(shù)實例運行,那么兩者會共享同一個臨時空間矾削,但因為云函數(shù)實例隨時可以被銷毀豁护,并且連續(xù)的請求不一定會落在同一個實例楚里,因此云函數(shù)不應(yīng)依賴之前云函數(shù)調(diào)用中在臨時磁盤空間遺留的數(shù)據(jù)猎贴。總的原則即是云函數(shù)代碼應(yīng)是無狀態(tài)的达址。
    • 事件模型:云函數(shù)的調(diào)用采用事件觸發(fā)模型趁耗,小程序端的每一次調(diào)用即觸發(fā)了一次云函數(shù)調(diào)用事件,云函數(shù)平臺會新建或復(fù)用已有的云函數(shù)實例來處理這次調(diào)用对粪。同理,因為云函數(shù)間也可以相互調(diào)用著拭,因此云函數(shù)間相互調(diào)用也是觸發(fā)了一次調(diào)用事件纱扭。

注:本文為學(xué)習(xí)筆記,原版視頻級源碼如下

點此獲取源碼

點此獲取視頻教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末儡遮,一起剝皮案震驚了整個濱河市乳蛾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鄙币,老刑警劉巖肃叶,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異十嘿,居然都是意外死亡因惭,警方通過查閱死者的電腦和手機绩衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門蹦魔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咳燕,你說我怎么就攤上這事勿决。” “怎么了招盲?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵低缩,是天一觀的道長。 經(jīng)常有香客問我曹货,道長咆繁,這世上最難降的妖魔是什么讳推? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮么介,結(jié)果婚禮上娜遵,老公的妹妹穿的比我還像新娘蜕衡。我一直安慰自己壤短,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布慨仿。 她就那樣靜靜地躺著久脯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪镰吆。 梳的紋絲不亂的頭發(fā)上帘撰,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音万皿,去河邊找鬼摧找。 笑死,一個胖子當(dāng)著我的面吹牛牢硅,可吹牛的內(nèi)容都是我干的蹬耘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼减余,長吁一口氣:“原來是場噩夢啊……” “哼综苔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起位岔,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤如筛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抒抬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杨刨,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年擦剑,在試婚紗的時候發(fā)現(xiàn)自己被綠了妖胀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡抓于,死狀恐怖做粤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捉撮,我是刑警寧澤怕品,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站巾遭,受9級特大地震影響肉康,放射性物質(zhì)發(fā)生泄漏闯估。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一吼和、第九天 我趴在偏房一處隱蔽的房頂上張望涨薪。 院中可真熱鬧,春花似錦炫乓、人聲如沸刚夺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侠姑。三九已至,卻和暖如春箩做,著一層夾襖步出監(jiān)牢的瞬間莽红,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工邦邦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留安吁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓燃辖,卻偏偏與公主長得像鬼店,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子郭赐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 9.10號微信重磅推出小程序云開發(fā)功能薪韩,該功能方便了很多邏輯上的問題,至于安全嘛捌锭,騰訊的俘陷,如果騰訊不看你的,沒人看...
    zhyzhyzz閱讀 9,096評論 2 5
  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,197評論 0 3
  • 一观谦、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,746評論 0 10
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,101評論 1 32
  • 昨天下班回到家拉盾,老公說了幾句不中聽的話,我突然就火了豁状,一個人跑出去捉偏,剪頭發(fā)、吃飯泻红、逛超市夭禽。 他本來就是那種人,覺得...
    小蓉_ab42閱讀 184評論 0 0