背景需求
在本人的项目中,需要调用一个http的接口,而微信小程序所有的网络请求都得使用https,因而需要一个中转站,使得在正式发布的时候可以使用http接口。(在调试环境下,只要在本地设置里勾选“不校验合法域名”即可使用http接口)
微信小程序云函数使用教程
1. 项目里添加字段
(1)在根目录下“project.config.json”文件,添加字段
"cloudfunctionRoot": "cloudfunctions/",
(2)在根目录下“app.json”文件,添加字段"cloud":true
2. 新建存储云函数的文件夹
在根目录自己下创建文件夹"cloudfunctions",由于刚才的配置,该文件夹下会有个云的图标。
3. 新建云函数
右击刚才新建的文件夹"cloudfunctions",会有“新建Node.js云函数”选项,填写函数名称后,会自动生成一个文件目录,里面有三个文件夹。比如我这里创建的函数名称叫"csdn"
点击该目录下的"index.js"文件夹,即可编写我们的云函数。
想要发送http请求,需要先安装个“request-promise”包,安装方法:
npm install request-promise
该index.js文件的具体内容:
// 云函数入口文件
const cloud = require('wx-server-sdk')
var rp = require('request-promise');
cloud.init()
// 云函数入口函数
//event 指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数
exports.main = async (event, context) => {
let url = event.url;
return await rp(url)
.then(function (res) {
return res
})
.catch(function (err) {
return '请求失败!'
});
}
4. 部署云函数
在每次编辑完云函数后,都要先部署一下,才能生效。具体部署方法:
右键该云函数名称,选择“上传并部署”
记得每次修改完都要重新部署!
5. 调用云函数
在页面的js文件里调用该云函数:
wx.cloud.callFunction({
// 自己定义的云函数名称
name: 'csdn',
// 传给云函数的参数
data: {
url:"http://xxx.xxx.xxx"
},
success: function(res) {
//这里的res就是云函数的返回值
console.log(res)
},
fail: console.error
})