收藏
回答

云函数调用Webservice,本地调试一切正常,上传部署在在云端测试提示错误?如附件

在本地调试时一切正常的,云端测试就报错,这是什么原因啊,大神们帮忙看看呀,谢谢啦

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

2 个回答

  • 55
    55
    2021-02-04

    为什么总是不走本地调试啊,好奇怪。

    2021-02-04
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    发表于移动端
    2021-01-12
    云端没上传依赖
    2021-01-12
    有用
    回复 12
    • Keep Moving
      Keep Moving
      2021-01-12
      意思是得把node_modules这个上传吗?我选的是上传并部署:云端安装依赖(不上传node_modules),谢谢啦
      2021-01-12
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于移动端
      2021-01-12回复Keep Moving
      先亮一下代码吧
      2021-01-12
      回复
    • Keep Moving
      Keep Moving
      2021-01-12
      // 云函数入口文件
      const cloud = require('wx-server-sdk')
      cloud.init({
        env: cloud.DYNAMIC_CURRENT_ENV,
        traceUser: true
      })
      const db = cloud.database()
      const qC = db.collection("jobinfo")
      // 云函数入口函数
      exports.main = async (event, context) => {
        const value = {
          SysID: "0000000003",
          CSysID: "0000000003",
          Status: 5
        }
        const sendvalue = Buffer.from(JSON.stringify(value)).toString('base64')
        const soap = require('soap');
        const url = 'http://sup.wcube.foxconn.com/OAPlatform/ComService.asmx?wsdl';
        const args = {
          sendvalue: sendvalue,
          taskstatus: 2
        };
        //拿到所有的close狀態的任務
        const returnResult = await new Promise((resolve, reject) => {
          soap.createClient(url, function (err, client) {
            if (err) {
              console.log(err);
            }
            //返回一个客户端,并且传参调用Java的接口,接收返回的数据
            client.GetTaskList(args, function (error, result) {
              //打印接收到的数据
              resolve(JSON.parse(result.GetTaskListResult))
              console.log(JSON.parse(result.GetTaskListResult))
              const resultList = JSON.parse(result.GetTaskListResult).Resultvalue
              console.log("1", JSON.parse(result.GetTaskListResult).Resultvalue)
              console.log("2", JSON.parse(result.GetTaskListResult).Resultvalue.length)
              for (let index = 0; index < JSON.parse(result.GetTaskListResult).Resultvalue.length; index++) {
                const re = JSON.parse(Buffer.from(resultList[index].Value, 'base64').toString('utf-8'))
                console.log("3", re)
                // console.log("4", Buffer.from(re.title, 'base64').toString('utf-8'))
                console.log("5", Buffer.from(re.operationtyoe, 'base64').toString('utf-8'))
                // return
                // 2. 先把图片上传到云存储 -> fileID
                if (Buffer.from(re.operationtyoe, 'base64').toString('utf-8') == 2) {
                  qC.doc(re._id).update({
                    data: {
                      updateTime: db.serverDate(),
                      // updatePerson: Buffer.from(re.updatePerson, 'base64').toString('utf-8'),
                      status: '1'
                    }
                  })
                } else {
                  let urlName = 'jobImages/' + re._id + Date.now() + index + '.png'
                  console.log("6", Buffer.from(re.fileIDs[0], 'base64'))
                  cloud.uploadFile({
                    cloudPath: urlName,
                    fileContent: Buffer.from(re.fileIDs[0], 'base64')
                  }).then(e => {
                    console.log("7", e.fileID)
                    var fileIDs = []
                    fileIDs.push(e.fileID)
                    if (Buffer.from(re.operationtyoe, 'base64').toString('utf-8') == 0) {
                      qC.add({
                        data: {
                          title: Buffer.from(re.title, 'base64').toString('utf-8'),
                          factoryname: Buffer.from(re.factoryname, 'base64').toString('utf-8'),
                          totalnum: Buffer.from(re.totalnum, 'base64').toString('utf-8'),
                          bonus: Buffer.from(re.bonus, 'base64').toString('utf-8'),
                          address: Buffer.from(re.address, 'base64').toString('utf-8'),
                          specification: Buffer.from(re.specification, 'base64').toString('utf-8'),
                          salary: Buffer.from(re.salary, 'base64').toString('utf-8'),
                          founder: Buffer.from(re.founder, 'base64').toString('utf-8'),
                          position: Buffer.from(re.position, 'base64').toString('utf-8'),
                          createTime: db.serverDate(),
                          fileIDs: fileIDs,
                          signupNum: Buffer.from(re.signupNum, 'base64').toString('utf-8'),
                          status: '0',
                          mobile: Buffer.from(re.mobile, 'base64').toString('utf-8'),
                          jobcontent: Buffer.from(re.jobcontent, 'base64').toString('utf-8'),
                          others: Buffer.from(re.others, 'base64').toString('utf-8'),
                          route: Buffer.from(re.route, 'base64').toString('utf-8'),
                          updateTime: db.serverDate(),
                          updatePerson: '',
                          _id: re._id
                        }
                      }).then(res => {
                        console.log("8", res)
                      }).catch(e => {
                        console.log("9", e)
                      })
                    } else if (Buffer.from(re.operationtyoe, 'base64').toString('utf-8') == 1) {
                      try {
                        qC.doc(re._id).update({
                          data: {
                            title: Buffer.from(re.title, 'base64').toString('utf-8'),
                            factoryname: Buffer.from(re.factoryname, 'base64').toString('utf-8'),
                            totalnum: Buffer.from(re.totalnum, 'base64').toString('utf-8'),
                            bonus: Buffer.from(re.bonus, 'base64').toString('utf-8'),
                            address: Buffer.from(re.address, 'base64').toString('utf-8'),
                            specification: Buffer.from(re.specification, 'base64').toString('utf-8'),
                            salary: Buffer.from(re.salary, 'base64').toString('utf-8'),
                            founder: Buffer.from(re.founder, 'base64').toString('utf-8'),
                            position: Buffer.from(re.position, 'base64').toString('utf-8'),
                            createTime: db.serverDate(),
                            fileIDs: fileIDs,
                            signupNum: Buffer.from(re.signupNum, 'base64').toString('utf-8'),
                            status: '0',
                            mobile: Buffer.from(re.mobile, 'base64').toString('utf-8'),
                            jobcontent: Buffer.from(re.jobcontent, 'base64').toString('utf-8'),
                            others: Buffer.from(re.others, 'base64').toString('utf-8'),
                            route: Buffer.from(re.route, 'base64').toString('utf-8'),
                            updateTime: db.serverDate(),
                            updatePerson: ''
                          }
                        }).then(res => {
                          console.log("10", res)
                        }).catch(e => {
                          console.log("11", e)
                        })
                      } catch (e) {
                        console.log(e)
                      }
                    }
                  })
                }
                // return
                const sendvalue = {
                  Rid: JSON.parse(result.GetTaskListResult).Resultvalue[index].Rid,
                  Status: 3
                }
                const sendvalueStr = JSON.stringify(sendvalue)
                const sendvalue64 = Buffer.from(sendvalueStr).toString('base64')
                const args1 = {
                  sendvalue: sendvalue64,
                };
                new Promise((resolve, reject) => {
                  soap.createClient(url, function (err, client) {
                    if (err) {
                      console.log(err);
                    }
                    //返回一个客户端,并且传参调用Java的接口,接收返回的数据
                    client.Delete(args1, function (error, result) {
                      //打印接收到的数据
                      resolve(result)
                    });
                  });
                })
              }
            });
          });
        })
      }
      2021-01-12
      回复
    • Keep Moving
      Keep Moving
      2021-01-12回复Mr.Zhao
      我npm下载soap一直报截图异常,本地的node_modules是从之前正常的云函数copy过来的,您看这个异常您能帮我看一下吗
      2021-01-12
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-01-12回复Keep Moving
      没问题啊,你为啥要copy呢?
      2021-01-12
      回复
    查看更多(7)
登录 后发表内容
问题标签