收藏
回答

云函数的调用问题,为什么成功调用了云函数,实际并没有去执行云函数?

云函数是将云存储的excel文件下载下来,通过解析excel文件,再将其存入云数据库里,实际上云函数是调用了,但是云数据库并没有添加数据

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

cloud.init()

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

const db = cloud.database()


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

let {

fileID

} = event

//1,通过fileID下载云存储里的excel文件

const res = await cloud.downloadFile({

fileID: fileID,

})

const buffer = res.fileContent


const tasks = [] //用来存储所有的添加数据操作

//2,解析excel文件里的数据

var sheet1 = xlsx.parse(buffer); //获取到所有sheets

sheets.forEach(function (sheet1) {

console.log(sheet1['name']);

for (var rowId in sheet1['data']) {

console.log(rowId);

var row = sheet1['data'][rowId]; //第几行数据

if (rowId > 0 && row) { //第一行是表格标题,从第2行开始读

//3,把解析到的数据存到excelList数据表里

const promise = db.collection('users')

.add({

data: {

name: row[0], //姓名

age: row[1], //年龄

address: row[2], //地址

wechat: row[3] //wechat

}

})

tasks.push(promise)

}

}

});


// 等待所有数据添加完成

let result = await Promise.all(tasks).then(res => {

return res

}).catch(function (err) {

return err

})

return result

}


回答关注问题邀请回答
收藏

3 个回答

  • Lan
    Lan
    04-20

    我也遇到云函数调用成功但是并没有执行的问题,题主最后解决问题了吗

    04-20
    有用
    回复
  • Dav王-自动化裁剪设备
    Dav王-自动化裁剪设备
    2020-08-11

    我也遇到相同问题,感觉小程序的云函数不靠谱

    2020-08-11
    有用
    回复
  • 郑旭东
    郑旭东
    2020-04-29

    初看代码没发现问题,你得调试一下。打开云开发控制台-云函数-日志,看看是不是执行了,报了些什么错误,再不行,一步一步console.log

    环境对了没有,试试这样:

    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    
    
    2020-04-29
    有用
    回复 2
    • 咕咕
      咕咕
      2020-04-29
      谢谢你,但是我打开了就控制台,显示的是调用成功,但实际上在云数据库里面并没有添加到数据
      2020-04-29
      回复
    • 咕咕
      咕咕
      2020-04-29
      没有添加到数据库里
      2020-04-29
      回复
登录 后发表内容
问题标签