都知道小程序上線接口需要域名,還需要https,就算是體驗版的都是需要的,這樣就篩選掉一大批開發者,像我這樣只有學生輕量級服務器的學生要開發自己的小程序就很為難,但今天確驚奇的在小程序社區里面找到了用ip寫接口的方法。
這就是用雲函數,官方文檔上面寫的雲函數是只提供了一套對自己數據庫的增刪改查。提供這套功能的框架是wx-server-sdk
,由於雲開發的環境運行在node.js中,我們開發者工具這邊也要安裝node.js,幸好我以前研究雲函數的時候在自己電腦預安裝了node.js,所以這邊可以直接運行,話不多說,放碼過來。
用PHP隨便寫個接口,返回點東西,放到自己的服務器中。
<?php $id = '我是id'; $name = '我是name'; $ret=array('id'=>$id,'name'=>$name); echo urldecode(json_encode($ret, JSON_UNESCAPED_UNICODE)); ?>
然后新建一個雲函數,具體怎么建可以參考官方文檔
然后在該雲函數的目錄中安裝request-promise依賴,在你電腦中找到你的雲函數目錄地址,按住shift,右鍵空白處,在此處打開cmd,然后輸入npm install request-promise回車。
接着在你新建的雲函數中的index.js中插入以下代碼
//request-promise是剛剛你在雲函數的目錄下安裝的依賴 const rq = require('request-promise') exports.main = async(event, context) => { var res = await rq( { method: 'post', uri: 'http://你的ip/aa.php', body: { xxx: '', }, //參數 headers: {}, //請求頭 json: true //是否json數據 } ).then((body) => { return body }).catch(err => { return err; }) return res; }
這樣就好了,現在去請求看看。
onLoad: function () { // 初始化 wx.cloud.init() wx.cloud.callFunction({ name: 'proxy', }).then(res => { console.log(res) }) },
返回:
正常返回,以后ip也可以寫接口了,只不過雲服務還是有很多確點的,返回慢,次數限制等。但對於學習而言足夠了。