给各位大佬添麻烦了,我找到原因了,是因为我没有重新部署我的云函数代码
我写了个导出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-21const 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}`;
wx.cloud.uploadFile()的上传路径cloudPath怎么设置时间名称文件夹?let that=this let time=Date.parse(new Date())/1000 let releaseTime=new Date().toLocaleDateString() console.log(that.data.userInfo) // console.log(releaseTime) // that.setData({ // releaseTime:releaseTime // }) if(that.data.userInfo==null){ wx.showToast({ title: '请先登录!', icon:'none' }) }else{ wx.showLoading({ title: '上传中', }) //console.log(that.data.src.length) for(let i=0;i<that.data.src.length;i++){ wx.cloud.uploadFile({ cloudPath:'${releaseTime}/'+time+i, //上传到存储中的名字 为了使上传的图片不重复和成功 需要动态赋值 filePath:that.data.src[i], //图片的临时路径 }).then(res=>{ wx.hideLoading() wx.showToast({ title: '上传成功', }) console.log(res.fileID,i) upbase[i]=res.fileID }).catch(error=>{ console.log(error) }) } } [图片]上传成功了,但是字符串,而不是时间日期的具体值,求大佬指教。
06-21大佬解决了吗 我也是这个问题
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 } }
06-21