微信小程序-雲開發實戰教程
雲函數,雲存儲,雲數據庫,雲調用
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started
雲函數
cloud functions
// index.js 是入口文件,雲函數被調用時會執行該文件導出的 main 方法
// event 包含了調用端(小程序端)調用該函數時傳過來的參數,同時還包含了可以通過 getWXContext 方法獲取的用戶登錄態 `openId` 和小程序 `appId` 信息
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
let { userInfo, a, b} = event
let { OPENID, APPID } = cloud.getWXContext() // 這里獲取到的 openId 和 appId 是可信的
let sum = a + b
return {
OPENID,
APPID,
sum
}
}
pages methods
wx.cloud.callFunction({
// 需調用的雲函數名
name: 'add',
// 傳給雲函數的參數
data: {
a: 12,
b: 19,
},
// 成功回調
complete: console.log
})
// 當然 promise 方式也是支持的
wx.cloud.callFunction({
name: 'add',
data: {
a: 12,
b: 19
}
}).then(console.log)
✅ 打印雲函數的信息 event, context, wxContext,
// 雲函數入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const log = console.log;
// 雲函數入口函數
exports.main = async (event, context) => {
log(`event, context`, event, context);
const wxContext = cloud.getWXContext();
log(`wxContext =`, wxContext);
// let { OPENID, APPID } = cloud.getWXContext();
// 這里獲取到的 openId 和 appId 是可信的
// const {
// OPENID,
// APPID,
// } = cloud.getWXContext();
// let { userInfo, a, b} = event;
const {
a,
b,
// userInfo,
} = event;
const sum = a + b;
// ✅返回想查看的信息 event, context, wxContext,
return {
sum,
event,
context,
wxContext,
};
}
data: {
urls: [
{
url: "https://cdn.xgqfrms.xyz/logo/icon.png",
id: 1,
},
{
url: "https://cdn.xgqfrms.xyz/logo/favicon.png",
id: 2,
},
{
url: "https://cdn.xgqfrms.xyz/logo/logo.png",
id: 3,
},
],
sum: 0,
},
sum(e) {
// log(`sum =`, e);
const min = Math.floor(Math.random() * 10);
const max = Math.floor(Math.random() * 10 + 10);
wx.cloud.callFunction({
name: 'sum',
data: {
a: min,
b: max,
},
})
.then(res => {
// ✅打印返回的信息 event, context, wxContext,
log(`add OK`, res);
// log(`sum =`, res.result.sum);
const sum = res.result.sum;
this.setData({
sum,
});
})
.catch(error => {
err(`add error`, error);
})
},
雲存儲
// 讓用戶選擇一張圖片
wx.chooseImage({
success: chooseResult => {
// 將圖片上傳至雲存儲空間
wx.cloud.uploadFile({
// 指定上傳到的雲路徑
cloudPath: 'my-photo.png',
// 指定要上傳的文件的小程序臨時文件路徑
filePath: chooseResult.tempFilePaths[0],
// 成功回調
success: res => {
console.log('上傳成功', res)
},
})
},
})
雲數據庫
// 1. 獲取數據庫引用
const db = wx.cloud.database()
// 2. 構造查詢語句
// collection 方法獲取一個集合的引用
// where 方法傳入一個對象,數據庫返回集合中字段等於指定值的 JSON 文檔。API 也支持高級的查詢條件(比如大於、小於、in 等),具體見文檔查看支持列表
// get 方法會觸發網絡請求,往數據庫取數據
db.collection('books').where({
publishInfo: {
country: 'United States'
}
}).get({
success: function(res) {
// 輸出 [{ "title": "The Catcher in the Rye", ... }]
console.log(res)
}
})
雲調用
雲調用是雲開發提供的基於雲函數使用小程序開放接口的能力,目前覆蓋以下使用場景:
服務端調用
開放數據調用
消息推送
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/
wx-server-sdk
SDK
$ yarn add wx-server-sdk
$ npm i wx-server-sdk
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/
refs
©xgqfrms 2012-2020
www.cnblogs.com 發布文章使用:只允許注冊用戶才可以訪問!