1. 程式人生 > >小程式開發之雲函式

小程式開發之雲函式

小程式開發提供了雲函式的功能, 把函式寫好, 上傳至雲,然後就能像呼叫本地函式一樣呼叫雲函數了,涉及到一些密匙之類的不妨試試放在雲端呼叫更安全, 是不是很神奇讓我們來看看吧!

一 新建專案,建議自己申請一個賬號,用測試賬號是沒有云開發的選項的,下圖這個

二 點選雲開發 , 按要求填寫引數生成雲開發例項,很簡單

三 需要看下project.config.json(一般在專案的根目錄下) 中的雲函式根目錄, 沒有也可以生成一個,如下

{
	"miniprogramRoot": "miniprogram/", //小程式的根目錄
	"cloudfunctionRoot": "cloudfunctions/", //雲函式的根目錄 所有的雲函式都在這個目錄下
	"setting": { //基礎配置
		"urlCheck": true,
		"es6": true,
		"postcss": true,
		"minified": true,
		"newFeature": true
	},
	"appid": "wx5f7f013e847d189d",
	"projectname": "say_eat",
	"libVersion": "2.2.5",
	
}

四 定義雲函式,並上傳至雲端(前提已經設定好了雲開發的配置),我們在cloudfunctions目錄下試著定義一個計算兩個數相乘的方法

右擊cloudfunctions建立雲函式,裡邊會自帶index.js 和package.jsjon 自己修改下

// index.js 是入口檔案,*必須定義並匯出main函式,雲函式被呼叫時會執行該檔案匯出的 main 方法
// event 包含了呼叫端(小程式端)呼叫該函式時傳過來的引數,同時還包含了可以通過 getWXContext 方法獲取的使用者登入態 `openId` 和小程式 `appId` 資訊
// 目錄結構是 cloudfunctions/multiplication/index.js
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
  let { a, b} = event;
  let { OPENID, APPID } = cloud.getWXContext() // 這裡獲取到的 openId 和 appId 是可信的
  let product = a * b;

  return { //這裡定義返回的物件,也可以是變數,在後邊的success中接受到
    OPENID,
    APPID,
    product 
  }
}

六 最後一步開始呼叫啦

//呼叫分兩種 回撥 和 promise , 都差不多啦, 這裡是沒有
wx.cloud.callFunction({
  // 需呼叫的雲函式名
  name: 'multiplication', 
  // 傳給雲函式的引數 也就是上邊的event物件
  data: {       
    a: 12,
    b: 19,
  },
  // 成功回撥
   success: res => {
     console.log(res);
   },
   fail: err => {
     console.error('[雲函式] [login] 呼叫失敗', err)
   }
})

// 當然 promise 方式也是支援的
wx.cloud.callFunction({
  name: 'multiplication',
  data: {
    a: 12,
    b: 19
  }
}).then(console.log)
  .catch(console.log)

到這裡一個雲函式就定義完畢了, 是不是很簡單呢,如果有什麼問題,歡迎留言.

 感謝您的閱讀!如果文章中有任何錯誤,或者您有更好的理解和建議,歡迎和我聯絡!