數(shù)據(jù)庫(kù) API 分為小程序端和服務(wù)端兩部分,小程序端 API 擁有嚴(yán)格的調(diào)用權(quán)限控制,開發(fā)者可在小程序內(nèi)直接調(diào)用 API 進(jìn)行非敏感數(shù)據(jù)的操作。對(duì)于有更高安全要求的數(shù)據(jù),可在云函數(shù)內(nèi)通過(guò)服務(wù)端 API 進(jìn)行操作。云函數(shù)的環(huán)境是與客戶端完全隔離的,在云函數(shù)上可以私密且安全的操作數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù) API 包含增刪改查的能力,使用 API 操作數(shù)據(jù)庫(kù)只需三步:獲取數(shù)據(jù)庫(kù)引用、構(gòu)造查詢/更新條件、發(fā)出請(qǐng)求。以下是一個(gè)在小程序中查詢數(shù)據(jù)庫(kù)的發(fā)表于美國(guó)的圖書記錄的例子:
// 1. 獲取數(shù)據(jù)庫(kù)引用
const db = qq.cloud.database()
// 2. 構(gòu)造查詢語(yǔ)句
// collection 方法獲取一個(gè)集合的引用
// where 方法傳入一個(gè)對(duì)象,數(shù)據(jù)庫(kù)返回集合中字段等于指定值的 JSON 文檔。API 也支持高級(jí)的查詢條件(比如大于、小于、in 等),具體見文檔查看支持列表
// get 方法會(huì)觸發(fā)網(wǎng)絡(luò)請(qǐng)求,往數(shù)據(jù)庫(kù)取數(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ù)庫(kù)的 API 的使用和數(shù)據(jù)庫(kù)管理,可以參考數(shù)據(jù)庫(kù)指引章節(jié)。
存儲(chǔ)
云開發(fā)提供了一塊存儲(chǔ)空間,提供了上傳文件到云端、帶權(quán)限管理的云端下載能力,開發(fā)者可以在小程序端和云函數(shù)端通過(guò) API 使用云存儲(chǔ)功能。
在小程序端可以分別調(diào)用 qq.cloud.uploadFile 和 qq.cloud.downloadFile 完成上傳和下載云文件操作。下面簡(jiǎn)單的幾行代碼,即可實(shí)現(xiàn)在小程序內(nèi)讓用戶選擇一張圖片,然后上傳到云端管理的功能:
// 讓用戶選擇一張圖片
qq.chooseImage({
success: chooseResult =>{
// 將圖片上傳至云存儲(chǔ)空間
qq.cloud.uploadFile({
// 指定上傳到的云路徑
cloudPath:'my-photo.png',
// 指定要上傳的文件的小程序臨時(shí)文件路徑
filePath:chooseResult.tempFilePaths[0],
// 成功回調(diào)
success: res =>{
console.log('上傳成功', res)
},
})
},
})
上傳完成后可在控制臺(tái)中看到剛上傳的圖片。
更多的存儲(chǔ) API 和管理,可以參考存儲(chǔ)指引章節(jié)。
云函數(shù)
云函數(shù)是一段運(yùn)行在云端的代碼,無(wú)需管理服務(wù)器,在開發(fā)工具內(nèi)編寫、一鍵上傳部署即可運(yùn)行后端代碼。
比如我們?nèi)缦露x一個(gè)云函數(shù),命名為 add ,功能是將傳入的兩個(gè)參數(shù) a 和 b 相加:
// index.js 是入口文件,云函數(shù)被調(diào)用時(shí)會(huì)執(zhí)行該文件導(dǎo)出的 main 方法
更多建議: