小程序云開發(fā)怎么弄,小程序云開發(fā)怎么調(diào)用接口
最近微信小程序官方推出的小程序云開發(fā)能力吸引了一大批開發(fā)者的關(guān)注,這個(gè)小程序云開發(fā)到底是啥,簡(jiǎn)單的說(shuō),就是,云函數(shù)就是后端代碼,現(xiàn)在叫云函數(shù),自己寫,自己上傳,數(shù)據(jù)庫(kù)沒(méi)什么好說(shuō)的,就是數(shù)據(jù)庫(kù),不過(guò)這個(gè)數(shù)據(jù)庫(kù)是json數(shù)據(jù)庫(kù),很方便,怎么個(gè)方便法呢
下面為大家解讀小程序云開發(fā)怎么弄?
開通云開發(fā)
創(chuàng)建了第一個(gè)云開發(fā)小程序后,在使用云開發(fā)能力之前需要先開通云開發(fā)。在開發(fā)者工具工具欄左側(cè),點(diǎn)擊 “云開發(fā)” 按鈕即可開通云開發(fā)。云開發(fā)開通后自動(dòng)獲得一套云開發(fā)環(huán)境,各個(gè)環(huán)境相互隔離,每個(gè)環(huán)境都包含獨(dú)立的數(shù)據(jù)庫(kù)實(shí)例、存儲(chǔ)空間、云函數(shù)配置等資源。每個(gè)環(huán)境都有唯一的環(huán)境 ID 標(biāo)識(shí),初始創(chuàng)建的環(huán)境自動(dòng)成為默認(rèn)環(huán)境。
云開發(fā)控制臺(tái)
云開發(fā)控制臺(tái)是管理云開發(fā)資源的地方,控制臺(tái)提供以下能力:
概覽:查看云開發(fā)基礎(chǔ)使用數(shù)據(jù)
用戶管理:查看小程序用戶信息
數(shù)據(jù)庫(kù):管理數(shù)據(jù)庫(kù),可查看、增加、更新、查找、刪除數(shù)據(jù)、管理索引、管理數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限等
存儲(chǔ)管理:查看和管理存儲(chǔ)空間
云函數(shù):查看云函數(shù)列表、配置、日志和監(jiān)控
統(tǒng)計(jì)分析:查看云開發(fā)資源具體使用統(tǒng)計(jì)信息
資源環(huán)境
一個(gè)環(huán)境對(duì)應(yīng)一整套獨(dú)立的云開發(fā)資源,包括數(shù)據(jù)庫(kù)、存儲(chǔ)空間、云函數(shù)等。各個(gè)環(huán)境間是相互獨(dú)立的,用戶開通云開發(fā)后初始默認(rèn)可擁有最多兩個(gè)環(huán)境。在實(shí)際開發(fā)中,建議每一個(gè)正式環(huán)境都搭配一個(gè)測(cè)試環(huán)境,所有功能先在測(cè)試環(huán)境測(cè)試完畢后再上到正式環(huán)境。以初始可創(chuàng)建的兩個(gè)環(huán)境為例,建議一個(gè)創(chuàng)建為 test 測(cè)試環(huán)境,一個(gè)創(chuàng)建為 release 正式環(huán)境。
以下是小程序云開發(fā)怎么調(diào)用接口整個(gè)流程:
首先要升級(jí)一個(gè)開發(fā)者工具版本,更新到最新,下載地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
1、下載到最新的工具之后打開,先創(chuàng)建一個(gè)存儲(chǔ)我們自己云函數(shù)的文件夾命名:functions
2、找到project.config.json文件,添加 "cloudfunctionRoot": "functions/" 配置我們的云函數(shù)目錄
- {
- "description": "項(xiàng)目配置文件。",
- "cloudfunctionRoot": "functions/",
- "setting": {
- "urlCheck": true,
- "es6": true,
- "postcss": true,
- "minified": true,
- "newFeature": true
- },
- "compileType": "miniprogram",
- "libVersion": "2.1.3",
- "appid": "asdaaaaaa",
- "projectname": "",
- "condition": {
- "search": {
- "current": -1,
- "list": []
- },
- "conversation": {
- "current": -1,
- "list": []
- },
- "plugin": {
- "current": -1,
- "list": []
- },
- "game": {
- "current": -1,
- "list": []
- },
- "miniprogram": {
- "current": -1,
- "list": []
- }
- }
- }
3、發(fā)現(xiàn)云函數(shù)的目錄是不是別具一格,是的話就右鍵選擇:新建node.js云函數(shù),這時(shí)候系統(tǒng)會(huì)配置一個(gè)基礎(chǔ)版的云函數(shù)給我們,我們就拿這個(gè)基礎(chǔ)的云函數(shù)走一個(gè)流程
- // 云函數(shù)入口文件
- const cloud = require('wx-server-sdk')
- cloud.init() //初始化,小程序調(diào)用函數(shù)前必須要要先調(diào)用初始化
- // 云函數(shù)入口函數(shù)
- exports.main = async (event, context) => {
- return {
- sum: event.a + event.b,//event里面放的都是一些用戶傳遞過(guò)來(lái)的數(shù)據(jù),參數(shù)a和參數(shù)b
- userInfo: event.userInfo //還可以直接獲取到用戶的openid,這些是騰訊給出來(lái)的,并不需要用戶去授權(quán),很安全。
- }
- }
4、在我們的functions目錄中,右鍵我們的add,選擇:上傳并部署,然后就開始調(diào)用:
- wx.cloud.callFunction({
- name: 'add',
- data: {
- a: 1,
- b: 9
- }
- }).then((res)=>{
- console.log(res)
- })
5、是不是很激動(dòng),如果按照官方給出的文檔,可能會(huì)遇到下面幾個(gè)問(wèn)題:
問(wèn)題①:Cannot read property 'callFunction' of undefined; 遇到該問(wèn)題很好解決,這個(gè)問(wèn)題一般都是調(diào)試基礎(chǔ)庫(kù)版本太低的原因,可以往上調(diào)一下。 問(wèn)題②:發(fā)現(xiàn)版本庫(kù)調(diào)高了之后發(fā)現(xiàn)了另外一個(gè)問(wèn)題,
- errCode: -1 | errMsg: Cloud API isn't enabled, please call wx.cloud.init first
- 請(qǐng)先調(diào)用 wx.cloud.init() 完成初始化后再調(diào)用其他云 API。init 方法可傳入一個(gè)對(duì)象用于設(shè)置默認(rèn)配置,詳見文檔。;at pages/test/test page getData function
- Error: errCode: -1 | errMsg: Cloud API isn't enabled, please call wx.cloud.init first
- 請(qǐng)先調(diào)用 wx.cloud.init() 完成初始化后再調(diào)用其他云 API。init 方法可傳入一個(gè)對(duì)象用于設(shè)置默認(rèn)配置,詳見文檔。
這個(gè)問(wèn)題,就是調(diào)用云函數(shù)之前需要先進(jìn)行初始化。wx.cloud.init()就可以了。再去調(diào)用云函數(shù)。
成功獲取返回來(lái)的數(shù)據(jù)。官方提供的一個(gè)最初的簡(jiǎn)單小demo就算走通了,剩下的基本上都是此類操作,只是需要對(duì)照官方數(shù)據(jù)庫(kù)操作進(jìn)行特別的操作。