解析云代码afterSave返回错误107无法POST

时间:2017-05-16 22:42:14

标签: json node.js parse-platform parse-server cloud-code

我遇到了afterSave实现我的注册逻辑的问题。 我要做的是在用户进行注册时在Wallet类中添加一个事务,给他一些信用。所以我有我的云代码功能:



// Add welcome bonus on signup
Parse.Cloud.afterSave(Parse.User, (request) => {
// commit transaction only on signup completed with phone number
  if (request.object.get('username')) {
    const wallet = new Parse.Object('Wallet')

    wallet.set('value', 100)
    wallet.set('action', '+')
    wallet.set('description', 'welcome bonus')
    wallet.set('user', {
       __type: 'Pointer',
       className: '_User',
       objectId: request.object.id
    })


    wallet.save(null,{useMasterKey: true}).then(
      (result) => console.log('objectId',result.id),
      (error) => console.log('code:',error.code,'message:',error.message)
    )
  }
})




由于Parse.Cloud.useMasterKey()已被弃用,我在Parse文档中介绍了如何在save方法中使用useMasterKey选项,但我仍然遇到此错误:



info: afterSave triggered for _User for user undefined:
  Input: {...} className=_User, triggerType=afterSave, user=undefined
code: 107 message: Received an error with invalid JSON from Parse: Cannot POST /classes/Wallet




这是我的电子钱包表:

|值:数字| action:String | description:String | user:指针< _User> |

默认列createdAt,updatedAt,objectId和ACL

我正在使用localhost。

关于发生了什么的任何想法?

1 个答案:

答案 0 :(得分:0)

我敢打赌,这是您设置用户的方式的问题。如果该字段被设置为用户对象的指针字段,那么您需要做的就是设置wallet.set('user', request.object);请求的其余部分看起来很好,所以我的直觉告诉我它并不喜欢JSON您的设置的格式。即当我在仪表板上设置指针时,我只需输入对象ID。我不像指针那样格式化它。

此外,只要您保存用户,就会触发此操作,因此无论如何都不会按照此问题执行您想要的操作。