W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
可以按如下步驟快速開始使用云開發(fā)。
也可以省略此步驟,直接在已有項目上開通和使用云開發(fā)。
新建項目選擇一個空目錄,填入 AppID(使用云開發(fā)能力必須填寫 AppID),勾選創(chuàng)建 “云開發(fā) QuickStart 項目”,點擊創(chuàng)建即可得到一個展示云開發(fā)基礎能力的示例小程序。該小程序與普通 QuickStart 小程序有以下不同需注意: 無游客模式、也不可以使用 測試號 project.config.json 中增加了字段 cloudfunctionRoot 用于指定存放云函數(shù)的目錄 云開發(fā)能力從基礎庫 1.9.1 開始支持
創(chuàng)建了第一個云開發(fā)小程序后,在使用云開發(fā)能力之前需要先開通云開發(fā)。在開發(fā)者工具工具欄左側,點擊 “云開發(fā)” 按鈕即可打開云控制臺、根據(jù)提示開通云開發(fā)、創(chuàng)建云環(huán)境。默認配額下可以創(chuàng)建兩個環(huán)境,各個環(huán)境相互隔離,每個環(huán)境都包含獨立的數(shù)據(jù)庫實例、存儲空間、云函數(shù)配置等資源。每個環(huán)境都有唯一的環(huán)境 ID 標識,初始創(chuàng)建的環(huán)境自動成為默認環(huán)境。
注:AppID 首次開通云環(huán)境后,需等待大約 10 分鐘方可正常使用云 API,在此期間官方后臺服務正在做準備服務,如嘗試在小程序中調(diào)用云 API 則會報 cloud init error:{ errMsg: "invalid scope" } 的錯誤
關系型數(shù)據(jù)庫和 JSON 數(shù)據(jù)庫的概念對應關系如下表: | 關系型 | 文檔型 |
---|---|---|
數(shù)據(jù)庫 database | 數(shù)據(jù)庫 database | |
表 table | 集合 collection | |
行 row | 記錄 record / doc | |
列 column | 字段 field |
以下是一個示例的集合數(shù)據(jù),假設我們有一個 books 集合存放了圖書記錄,其中有兩本書:
[
{
"_id": "Wzh76lk5_O_dt0vO",
"title": "The Catcher in the Rye",
"author": "J. D. Salinger",
"characters": [
"Holden Caulfield",
"Stradlater",
"Mr. Antolini"
],
"publishInfo": {
"year": 1951,
"country": "United States"
}
},
{
"_id": "Wzia0lk5_O_dt0vR",
"_openid": "ohl4L0Rnhq7vmmbT_DaNQa4ePaz0",
"title": "The Lady of the Camellias",
"author": "Alexandre Dumas fils",
"characters": [
"Marguerite Gautier",
"Armand Duval",
"Prudence",
"Count de Varville"
],
"publishInfo": {
"year": 1848,
"country": "France"
}
}
]
在圖書信息中,我們用 title, author 來記錄圖書標題和作者,用 characters 數(shù)組來記錄書中的主要人物,用 publishInfo 來記錄圖書的出版信息。在其中我們可以看到,字段既可以是字符串或數(shù)字,還可以是對象或數(shù)組,就是一個 JSON 對象。 每條記錄都有一個 _id 字段用以唯一標志一條記錄、一個 _openid 字段用以標志記錄的創(chuàng)建者,即小程序的用戶。但需要特別注意的是,該_openid為騰訊云分配給小程序用戶的uid,與小程序用戶openid并不相等。另外在管理端(控制臺和云函數(shù))中創(chuàng)建的不會有 _openid 字段,因為這是屬于管理員創(chuàng)建的記錄。開發(fā)者可以自定義 _id,但不可自定義和修改 _openid 。 數(shù)據(jù)庫 API 分為小程序端和服務端兩部分,小程序端 API 擁有嚴格的調(diào)用權限控制,開發(fā)者可在小程序內(nèi)直接調(diào)用 API 進行非敏感數(shù)據(jù)的操作。對于有更高安全要求的數(shù)據(jù),可在云函數(shù)內(nèi)通過服務端 API 進行操作。云函數(shù)的環(huán)境是與客戶端完全隔離的,在云函數(shù)上可以私密且安全的操作數(shù)據(jù)庫。 數(shù)據(jù)庫 API 包含增刪改查的能力,使用 API 操作數(shù)據(jù)庫只需三步:獲取數(shù)據(jù)庫引用、構造查詢/更新條件、發(fā)出請求。以下是一個在小程序中查詢數(shù)據(jù)庫的發(fā)表于美國的圖書記錄的例子:
// 1. 獲取數(shù)據(jù)庫引用
const db = qq.cloud.database()
// 2. 構造查詢語句
// collection 方法獲取一個集合的引用
// where 方法傳入一個對象,數(shù)據(jù)庫返回集合中字段等于指定值的 JSON 文檔。API 也支持高級的查詢條件(比如大于、小于、in 等),具體見文檔查看支持列表
// get 方法會觸發(fā)網(wǎng)絡請求,往數(shù)據(jù)庫取數(shù)據(jù)
db.collection('books').where({
publishInfo: {
country: 'United States'
}
}).get({
success: function(res) {
// 輸出 [{ "title": "The Catcher in the Rye", ... }]
console.log(res)
}
})
更多的數(shù)據(jù)庫的 API 的使用和數(shù)據(jù)庫管理,可以參考數(shù)據(jù)庫指引章節(jié)。
云開發(fā)提供了一塊存儲空間,提供了上傳文件到云端、帶權限管理的云端下載能力,開發(fā)者可以在小程序端和云函數(shù)端通過 API 使用云存儲功能。 在小程序端可以分別調(diào)用 qq.cloud.uploadFile 和 qq.cloud.downloadFile 完成上傳和下載云文件操作。下面簡單的幾行代碼,即可實現(xiàn)在小程序內(nèi)讓用戶選擇一張圖片,然后上傳到云端管理的功能:
// 讓用戶選擇一張圖片
qq.chooseImage({
success: chooseResult => {
// 將圖片上傳至云存儲空間
qq.cloud.uploadFile({
// 指定上傳到的云路徑
cloudPath: 'my-photo.png',
// 指定要上傳的文件的小程序臨時文件路徑
filePath: chooseResult.tempFilePaths[0],
// 成功回調(diào)
success: res => {
console.log('上傳成功', res)
},
})
},
})
上傳完成后可在控制臺中看到剛上傳的圖片。 更多的存儲 API 和管理,可以參考存儲指引章節(jié)。
云函數(shù)是一段運行在云端的代碼,無需管理服務器,在開發(fā)工具內(nèi)編寫、一鍵上傳部署即可運行后端代碼。 比如我們?nèi)缦露x一個云函數(shù),命名為 add ,功能是將傳入的兩個參數(shù) a 和 b 相加:
// index.js 是入口文件,云函數(shù)被調(diào)用時會執(zhí)行該文件導出的 main 方法
// event 包含了調(diào)用端(小程序端)調(diào)用該函數(shù)時傳過來的參數(shù)
exports.main = (event, context) => {
let { a, b} = event
let sum = a + b
return {
sum
}
}
在開發(fā)者工具中上傳部署云函數(shù)后,我們在小程序中可以這么調(diào)用: 開發(fā)者可以在云函數(shù)內(nèi)使用官方提供的npm包 qq-server-sdk 完成操作數(shù)據(jù)庫、管理云文件、調(diào)用其他云函數(shù)等操作。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: