- 技术
- 小程序云开发
- NodeJS
- 开始
- 新建小程序云开发项目,开通云开发;
- 在cloudfunctions下新建Node.js云函数,命名download;
- 进入新建的云函数文件目录下(电脑磁盘download文件夹下),执行;
参考:https://www.npmjs.com/package/request-promise
npm install request-promise
- 打开新建云函数index.js文件内容
// 云函数入口文件
const cloud = require('wx-server-sdk')
const rp = require('request-promise');
cloud.init()
// 云函数入口函数
exports.main = async(event, context) => {
var options = {
// 请求方式
method: 'POST',
// 请求地址
uri: 'https://image.qq.com',
// 请求header
headers: {
'Content-type': 'application/json'
},
// 是否返回完整response
resolveWithFullResponse: true,
// 发送的请求参数
body: {
"text": event.text,
"voice": event.voice
},
json: true,
// encoding 当请求出现问题时,可以设置此参数,尝试解决
encoding: null
};
const response = await rp(options);
var time = new Date();
// 请求成功返回结果,判断是否成功
// if (response.headers['content-type'] == 'audio/mpeg') {
const upload = await cloud.uploadFile({
//保存文件路径
cloudPath: time.getTime() + '.jpg',
//文件流
fileContent: response.body,
});
return {
event,
upload
}
}
- 在miniprogram文件夹下的pages中新建Page,命名index,打开index.js,调用云函数
// miniprogram/pages/index/index.js
Page({
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.downloadImg();
},
downloadImg() {
wx.cloud.callFunction({
// 要调用的云函数名称
name: 'download',
// 传递给云函数的参数
data: {
text: that.data.text,
voice: that.data.voice
},
success: res => {
console.log(res)
}
});
}
})