收藏
回答

云函数遇到504002错误是啥原因?求大佬解答!

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
}) // 使用当前云环境
const TcbRouter = require('tcb-router');
const util = require('../../miniprogram/utils/util.js');
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  const app = new TcbRouter({
    event
  });
  app.use(async (ctx,next)=>{
    console.log('进入全局中间件')
    ctx.data = {}
    ctx.data.openId = event.userInfo.openId //通过该公共路由获取到用户openid
    await next()  //执行一下中间件.这是一个异步操作,要加上await
    console.log('退出全局中间件',ctx.data.openId)
  })


  console.log("event".event)
  // 路由为字符串,该中间件只适用于 add 路由
  app.router('add'async (ctx, next) => {
    try {
      return await db.collection('repair_orders').add({
        data: {
          _openid:ctx.data.openId,//openid 唯一标识
          nickName: event.repairer_nickName, //报修人微信昵称
          avatarUrl: event.repairer_avatarUrl, //报修人头像
          name: event.user_name, //报修人姓名
          phone: event.user_phone, //报修人手机号
          faultDetails: event.fault_details, //故障详情
          imgUrl: event.imgUrl, //上传图片名字
          address: event.address, //报修地点
          deviceName: event.device_name, //设备名称
          isClassing: event.is_classing,
          submitdatenew Date(),
          // completime: new Date(),
          status'已申请待分配',
          imgUrlR:'',//反馈图片
          step1,
          staff'',
          staffphone'',
          // adminphone: '',
           feedback'',
          // score: 5,
          // evaluate: ''
        }
        
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })


  // 路由为字符串,该中间件只适用于 share 路由,
  //分配人员分配维修单,确定 维修人员的姓名以及分配人员和分配时间,将step更新为2
  app.router('share'async (ctx, next) => {
    try {
      return await db.collection('repair_orders').doc(event.id).update({
        data: {
          step2,
          status"已分配待维修",
          staffName:event.staffName,
          sharerOpenid:event.sharerOpenid,//分配者姓名
          sharerTime:new Date(),//分配时间
        }
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })



  // 路由为字符串,该中间件只适用于 begin 路由,
  //维修人员开始将step更新为3,上传开始维修时间
  app.router('begin'async (ctx, next) => {
    try {
      return await db.collection('repair_orders').doc(event.id).update({
        data: {
          beginTime:new Date(),
          step3,
          status"正在维修",
        }
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })


  // 路由为字符串,该中间件只适用于 finish 路由
  //维修人员完成维修单,维修单,上传维修反馈及图片,将step更新为4
  app.router('finish'async (ctx, next) => {
    try {
      return await db.collection('repair_orders').doc(event.id).update({
        data: {
          feedback: event.feedback,
          imgUrlR:event.imgUrlR,
          step3,
          completime:new Date(),
          status"已完成"
        }
      })
    } catch (e) {
      console.error(e)
    }
    await next(); // 执行下一中间件
  })



  return app.serve();
}

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

2 个回答

  • Mr.Zhao
    Mr.Zhao
    2022-11-17

    看你util是在小程序里,这样写不行,云函数和小程序代码开发是在一个文件夹内,但是部署不在一起,小程序在客户端,云函数是服务端

    2022-11-17
    有用
    回复
  • 跨商通
    跨商通
    2022-11-17
    const util = require('../../miniprogram/utils/util.js');
    

    没有找到这个文件。

    2022-11-17
    有用
    回复
登录 后发表内容