cloud.uploadFile为什么返回null?
下面云函数功能就是通过查询条件查询数据,然后生成excel文件上传到云存储当中,问题就是上传的时候返回null!
(return await cloud.uploadFile == null'),不清楚为什么返回null,本地调试都没有问题,真机调试就出现了问题!
const cloud = require('wx-server-sdk')
//这里最好也初始化一下你的云开发环境
cloud.init({
env: "xxx"
})
const db = cloud.database()
const _ = db.command
//操作excel用的类库
const xlsx = require('node-xlsx');
// 云函数入口函数
exports.main = async (event, context) => {
try {
let { params } = event
var newParams = {};
if (params.username && params.username !== ""){
newParams.username = params.username;
}
if (params.company && params.company !== ""){
newParams.company = params.company;
}
if (params.project && params.project !== ""){
newParams.project = params.project;
}
if (params.bigclassname && params.bigclassname !== ""){
newParams.bigclassname = params.bigclassname;
}
if (params.pddictData && params.pddictData !== ""){
newParams.orderType = params.pddictData;
}
// 承载所有读操作的 promise 的数组
const tasks = []
for (let i = 0; i < params.xhcs; i++) {
const promise = cloud.database().collection("demoorder").where(_.and([newParams,
{date: _.gte(new Date(params.startDate)).and(_.lte(new Date(params.endDate)))}])
).orderBy('date','desc').skip(i * 20).limit(20).get()
tasks.push(promise)
}
// 等待所有
console.log(tasks);
let allData = await Promise.all(tasks)
let userdata = [];
for (let i = 0; i < allData.length; i++){
userdata = userdata.concat(allData[i].data);
}
//1,定义excel表格名
// let dataCVS = 'test.xlsx';
dataCVS = (Date.parse(new Date()) / 1000) + ".xlsx";
//2,定义存储数据的
let alldata = [];
let row = ['城市', '工程师', '被服务公司', '实施日期', '项目对象', '服务地址', '保修单号', '是否结单', '到场时间', '完成时间', '报销费用', '报销备注', '应收费用', '应收备注', '收费状态', '备注', '计单量', '计单量备注', '发票金额', '所属大类','订单类型','散客提成']; //表属性
alldata.push(row);
for (let key in userdata) {
let arr = [];
arr.push(userdata[key].city);
arr.push(userdata[key].username);
arr.push(userdata[key].company);
arr.push(userdata[key].date);
arr.push(userdata[key].project);
arr.push(userdata[key].address);
arr.push(userdata[key].number);
arr.push(userdata[key].isorder);
arr.push(userdata[key].arrivetime);
arr.push(userdata[key].endtime);
arr.push(userdata[key].tripmoney);
arr.push(userdata[key].tripdes);
arr.push(userdata[key].shouldmoney);
arr.push(userdata[key].shoulddes);
arr.push(userdata[key].ismoney);
arr.push(userdata[key].des);
arr.push(userdata[key].jidanliang);
arr.push(userdata[key].jidanliangdes);
arr.push(userdata[key].fapiaojine);
arr.push(userdata[key].bigclassname);
arr.push(userdata[key].orderType);
alldata.push(arr)
}
//3,把数据保存到excel里
var buffer = await xlsx.build([{
name: "mySheetName",
data: alldata
}]);
//4,把excel文件保存到云存储里
return await cloud.uploadFile({
cloudPath: 'excel/' + dataCVS,
fileContent: buffer, //excel二进制文件
})
} catch (e) {
console.error(e)
return e
}
}