現象:
以雲開發小程序模板為例,點擊獲得openid時,報錯: [login] 調用失敗 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message Function not found: [login]; at cloud.callFunction api。
即:未能找到雲函數。
重點看官方文檔。
解決辦法:
1.配置本地環境
雲端運行環境為 Node.js,需要先在本地安裝 Node.js 和 npm才能順利測試。同時還要在雲函數目錄下安裝 wx-server-sdk 依賴:
npm install --save wx-server-sdk
詳細內容參見官方文檔https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/
安裝node.js 下載地址 https://nodejs.org/en/
測試安裝是否成功
安裝完成后打開cmd:
輸入node -v 來測試 node.js
輸入npm -v 來測試 npm
安裝wx-server-sdk依賴。
在cmd中首先通過cd 雲函數路徑的命令,定位到雲函數目錄,這里要定位到某個具體的雲函數文件夾內,如login函數則要定位到login文件夾內。然后再執行npm install --save wx-server-sdk命令,安裝wx-server-sdk依賴。對於每一個你創建雲函數都要安裝該依賴。
如果在執行安裝命令后出現類似錯誤提示:rollbackFailedOptional: verb npm-session ****************,這是由於npm官方庫是國外的網站,在訪問時可能由於網絡原因導致異常。
解決方案:執行npm config set registry "http://registry.npm.taobao.org"命令,將官方庫替換為淘寶庫即可。
執行命令后可能會出現以下警告:
npm WARN **** No description
npm WARN **** No repository field
直接忽略即可,並不會影響后續的雲函數功能。成功安裝依賴后,相應的雲函數文件夾將生成一個package-lock.json文件。
2.完成雲端配置
在相應的雲函數文件夾上右鍵,選擇“上傳並部署:所有文件”。
3.檢查app.js中關於環境ID的配置,模板文件時缺省配置(首次創建的環境),如果目標環境不一致請人工設定一下ID。
