云函数里调用cloud.callFunction,可能参数数据量有点大,它既不执行也不报错什么鬼?
有一个查询数据并导出excel的业务流程,当数据组装好了开始调用导出云函数时:
console.log(1)
console.log(array.length)
const resFile = await cloud.callFunction({
name: "exportToExcel",
data: {
cloudPath,
array,
rangeArray: rangeArray,
name: '订单列表'
}
})
console.log(2)
打印的日志内容是:
2019-12-29T06:19:55.927Z 1
2019-12-29T06:19:55.928Z 1821
2019-12-29T06:19:56.414Z 2
可以看出来,exportToExcel被执行了半秒钟左右,但是问题来了,返回结果resFile不正常,是undefined,然后云开发后台查阅exportToExcel,没有调用记录,这是什么鬼?
大概是数据量太大出错,因为array length在几百的时候都没问题的。但又无法判断是哪个环节出错了。
一并附上exportToExcel的代码,就是组织参数调用第三方nodejs的一个云函数:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const xlsx = require('node-xlsx');
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const array = event.array
const cloudPath = event.cloudPath
const name = event.name
const rangeArray = event.rangeArray
var buffer = await xlsx.build([{
name: name,
data: array
}], { '!merges': rangeArray });
return await cloud.uploadFile({
cloudPath: cloudPath,
fileContent: buffer
})
}
请指教,谢谢。