收藏
回答

我写了个导出excel的云函数为什么在本地能正常使用,真机调试不行?


本地调用


云控制台调用也是能正常使用的



然后是真机测试



这是云函数中的代码

const cloud = require('wx-server-sdk')

//初始化一下云开发环境

cloud.init({

  env: "env"

})

//操作excel用的类库

const xlsx = require('node-xlsx');


// 获取当前时间

const now = new Date();

 

// 格式化时间为YYYY-MM-DD HH:mm:ss

const year = now.getFullYear();

const month = (now.getMonth() + 1).toString().padStart(2, '0');

const day = now.getDate().toString().padStart(2, '0');

const hours = now.getHours().toString().padStart(2, '0');

const minutes = now.getMinutes().toString().padStart(2, '0');

const seconds = now.getSeconds().toString().padStart(2, '0');

 

const formattedTime = `${year}-${month}-${day}-${hours}:${minutes}:${seconds}`;



// 云函数入口函数

exports.main = async(event, context) => {

  // console.log(event.Date.aac.length)

  try {

    //1,定义excel表格名

    let dataCVS = '学习基础调查表'+ formattedTime +'.xlsx'

    //2,定义存储数据的

    let alldata = [];

    let row = [

      '姓名', '年龄', '职业','兴趣爱好','形象需求',

      '希望给别人的第一印象', '希望通过形象给别人的第一印象', 

      '第8题选项','第9题选项','第10题选项','第11题选项',

      '第12题选项','第13题选项','第14题选项','第15题选项',

      '第16题选项','第17题选项','第18题选项','第19题选项']; //表属性

    alldata.push(row);

    for (let i = 0; i < event.userdata.length; i ++{

      console.log('循环中的数据',event.userdata[i])

      let data = event.userdata[i].imageAnalysis[0]

      console.log('循环中的数据data',data.name)

      let arr = [];

      //姓名

      arr.push(data.name);

      //年龄

      arr.push(data.age);

      //职业

      arr.push(data.occupation);

      //兴趣爱好

      arr.push(data.interest);

      //形象需求

      arr.push(data.imageNeed);

      //您希望给别人的第一印象

      arr.push(data.impression);

      //您希望通过形象给别人的第一印象

      arr.push(data.impressionA);

      //请将以下三个颜色,按颜色的纯度属性,从最鲜艳到最浑浊排序,如完全不清楚,请在横线处标记“×”

      arr.push(data.issuesA);

      //在服饰搭配时,全身颜色不能超过三种,这个原则

      arr.push(data.issuesB);

      //请将以下三种图案,按图案带来的视觉成熟度,从最成熟到最年轻排序

      arr.push(data.issuesC);

      //请将以下三双鞋,按照商品价格,从高到低排序

      arr.push(data.issuesD);

      //您对自己的身材横纵向比例清楚吗

      arr.push(data.issuesE);

      //您在日常服饰搭配时:

      arr.push(data.issuesF);

      //您的衣橱是否有根据场合来配置.整理

      arr.push(data.issuesG);

      //您在化妆方面

      arr.push(data.issuesH);

      //您平时购物时

      arr.push(data.issuesI);

      //您对家里衣橱的管理

      arr.push(data.issuesJ);

      //您对自己的发型

      arr.push(data.issuesK);

      //您在自己日常的形象管理方面

      arr.push(data.issuesL);

      alldata.push(arr)

    }

    //3,把数据保存到excel里

    var buffer = await xlsx.build([{

      name: "excel",

      data: alldata

    }]);

    //4,把excel文件保存到云存储里

    return await cloud.uploadFile({

      cloudPath: dataCVS,

      fileContent: buffer, //excel二进制文件

    })

  } catch (e{

    console.error(e)

    return e

  }

}



这是小程序调用的代码

//把数据保存到 excel 里,并把 excel 保存到云存储

  savaExcel(userdata) {

    console.log('把数据保存到excel调用接口')

    let that = this

    wx.cloud.callFunction({

      name: "excelImport",

      data: {

        userdata: userdata

      },

      success(res) {

        console.log("保存成功", res)

        that.getFileUrl(res.result.fileID)

      },

      fail(res) {

        console.log("保存失败", res)

      }

    })

  }




真机调试的时候返回结果就连fileID都没有

最后一次编辑于  06-21
回答关注问题邀请回答
收藏

1 个回答

  • 泷
    06-21

    给各位大佬添麻烦了,我找到原因了,是因为我没有重新部署我的云函数代码

    06-21
    有用
    回复
登录 后发表内容