收藏
回答

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
  }
}



回答关注问题邀请回答
收藏
登录 后发表内容