收藏
回答

云开发中,出现504002错误,该怎么解决?

基础库 2.22.0

刚开始运行可以,后来不知道为什么,就提示错误了,请大神指点一下。云函数代码如下: 错误代码在下面。

// 云函数入口文件
const cloud = require('wx-server-sdk')


cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})


const db = cloud.database({
  throwOnNotFound: false,
})



const _ = db.command
const $ = _.aggregate
// 云函数入口函数
exports.main = async (event) => {
  /**
   * 先读取车轮战数据库中,对应game_id的记录
   * 再比对/时间、状态、参加与否
   * 然后在找到的记录中,提取一个,写入mh_id,改变状态,
   */
  try {


    const transaction = await db.startTransaction() //启动事务
    const aaaRes = await transaction.collection('mh_game_chelunzhan')
      .aggregate() //聚合数据 的方式进行筛选
      .match({
        zhuangtai: event.zhuangtai, //1-房间等待,2-战斗中,3-自由匹配,4-退出
        game_id: event.game_id, //查找本游戏的ID
        mhID_1: _.neq(event.mhID), //在mhID_1和mhID_2里,没有自己mhIDr值的
        mhID_2: _.neq(event.mhID)
      })
      .sample({ //聚合中随机选了N条记录
        size: 1
      })
      .end()


    const cccRes = await aaaRes.list[0]._id //将ID赋值给cccRes
    let dddRes = '' //设置dddRes常量
    const bbbRes = await transaction.collection('mh_game_chelunzhan')


      // const bbbRes = await db.collection('mh_game_chelunzhan')
      //更新记录
      .doc(cccRes)
      .update({
        data: {
          zhuangtai: 2//1-房间等待,2-战斗中,3-自由匹配,4-退出
          mhID_2: event.mhID
        }
      })
      .then({
        dddRes = cccRes
      })


    return {
      // this1: aaaRes,
      // this2: bbbRes,
      this3: dddRes
      // aaa:'123'
    }


  } catch (e) {
    console.error('transaction error', e)


    return {
      success: false,
      error: e
    }
  }


}

错误提示如下:

WASubContext.js?t=wechat&s=1644366092828&v=2.22.0:2 Unhandled promise rejection Error: cloud.callFunction:fail Error: errCode: -504002 functions execute fail | errMsg: Runtime.UserCodeSyntaxError: SyntaxError: Invalid shorthand property initializer

    at Object.module.exports.load (:16998/var/runtime/node12/UserFunction.js:32)

    at Runtime.handleOnce (:16998/var/runtime/node12/Runtime.engine.js:99)

    at Timeout._onTimeout (:16998/var/runtime/node12/Runtime.engine.js:56)

    at listOnTimeout (:16998/appservice/internal/timers.js:549)

    at processTimers (:16998/appservice/internal/timers.js:492) (callId: 1644371825870-0.3668426811601977) (trace: 9:57:5 start->9:57:6 system error (Error: errCode: -504002 functions execute fail | errMsg: Runtime.UserCodeSyntaxError: SyntaxError: Invalid shorthand property initializer

    at Object.module.exports.load (:16998/var/runtime/node12/UserFunction.js:32)

    at Runtime.handleOnce (:16998/var/runtime/node12/Runtime.engine.js:99)

    at Timeout._onTimeout (:16998/var/runtime/node12/Runtime.engine.js:56)

    at listOnTimeout (:16998/appservice/internal/timers.js:549)

    at processTimers (:16998/appservice/internal/timers.js:492)), abort)

    at C (WASubContext.js?t=wechat&s=1644366092828&v=2.22.0:2)

    at WASubContext.js?t=wechat&s=1644366092828&v=2.22.0:2

    at WASubContext.js?t=wechat&s=1644366092828&v=2.22.0:2

    at n (WASubContext.js?t=wechat&s=1644366092828&v=2.22.0:2)(env: Windows,mp,1.05.2201240; lib: 2.22.0)




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

6 个回答

  • Cat
    Cat
    2023-03-25

    把新建的云函数删了还是没用

    2023-03-25
    有用
    回复
  • 益端科技
    益端科技
    2022-07-02

    发错了!

    2022-07-02
    有用
    回复
  • 之橙啊
    之橙啊
    2022-04-09

    如果是一个页面出现错误,但是运行没事,说明这个页面里面有个云函数出错了,要么是云函数你改名、删除、或者云函数里面配置出问题

    2022-04-09
    有用
    回复 1
    • Cat
      Cat
      2023-03-25
      对,怎么解决
      2023-03-25
      回复
  • 哄哄
    哄哄
    2022-02-10

    这边应该是 return ddRes 吧,赋值是啥意思

    2022-02-10
    有用
    回复 2
    • 张远洲13655956092
      张远洲13655956092
      发表于移动端
      2022-02-10
      复制是想程序运行成功了,才输出这个值,如果运行没成功,就不输出了。 本来应该是成功后返回或者再取那个id,感觉有点麻烦,这样能省事。 实际运行,update里这句只能用db.collection,不能用t....,否则更新不了数据
      2022-02-10
      1
      回复
    • 哄哄
      哄哄
      2022-02-11回复张远洲13655956092
      这里边应该是个回调函数吧,then(()=>{dddRes=cccRes})   写成这样试下
      2022-02-11
      回复
  • 游戏人生
    游戏人生
    2022-02-09

    那么多。。。

    这个需要你自己本地调试啊

    怀疑是await 当中有出错,不过你要一个个注释调试

    另外,我大致瞄了一眼,你这个用到了吗?


    2022-02-09
    有用
    回复 3
    • 张远洲13655956092
      张远洲13655956092
      2022-02-09
      看demo上写这个,我就写上了,应该是有用的吧。
      2022-02-09
      回复
    • 张远洲13655956092
      张远洲13655956092
      2022-02-09
      本地调试说这个错了
            .then({
              dddRes = cccRes
            })
       我给改成
      const dddRes = await aaaRes.list[0]._id 


      但现在下边update没有起做用,返回说修改成功,但内容其实是没有改的。
      2022-02-09
      回复
    • 张远洲13655956092
      张远洲13655956092
      2022-02-11
      const $ =......是须的,没有不行
      2022-02-11
      回复
  • Mr.Zhao
    Mr.Zhao
    2022-02-09

    没用排除法?一行一行注释,定位是哪的问题,自己帮自己

    2022-02-09
    有用
    回复 3
    • 张远洲13655956092
      张远洲13655956092
      2022-02-09
      O(∩_∩)O谢谢,我就是需要方法。
      2022-02-09
      回复
    • 张远洲13655956092
      张远洲13655956092
      2022-02-09
      云函数更新之后的延迟很多,所以不知道哪一次变更是成功的!真晕
      2022-02-09
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-02-09回复张远洲13655956092
      本地调试
      2022-02-09
      回复
登录 后发表内容