【问题标题】:Cloud Code 'Invalid Function' when updating user object更新用户对象时云代码“无效函数”
【发布时间】:2020-06-10 21:50:03
【问题描述】:

我正在尝试通过 useMasterKey 更新一个用户对象,它不是当前用户。但是,运行它时出现错误“无效功能”。 “blockedFrom”是用户对象中的一个数组,用于存储阻止相关用户的用户列表,我正在尝试通过 addUniqueObject 添加用户名。

Parse.Cloud.job('addBlockedFrom', function(request, status) {
    var query = new Parse.Query(Parse.User);
    query.equalTo("username", request.params.otherUser);  
    query.each(function(record) {
        record.addUniqueObject("blockedFrom", request.params.username);
        return record.save({useMasterKey:true});
    },{useMasterKey:true}).then(function(result) {
        console.log("addBlockedFrom completed.");
        status.success("addBlockedFrom completed.");
    }, function(error) {
        console.log("Error in addBlockedFrom: " + error.code + " " + error.message);
        status.error("Error in addBlockedFrom: " + error.code + " " + error.message);
    });
});

【问题讨论】:

  • 添加完整的错误。所以我们可以看到你得到什么类型的错误

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


【解决方案1】:

错误是正确的,它不是有效的云代码功能。 你上面定义的是一个工作。 您需要定义一个云代码函数。

替换

Parse.Cloud.job”与“Parse.Cloud.define

这应该可以解决问题。

【讨论】:

  • 做到了!谢谢!
【解决方案2】:

如果您的解析服务器版本 >3,那么您的云代码必须更改为新版本。

试试这个:

Parse.Cloud.define("addBlockedFrom", async (request) => {

  var query = new Parse.Query(Parse.User);    
  query.equalTo("username", request.params.otherUser); 
  try{
    var otherUser = await query.first();
    otherUser.addUnique("blockedFrom", request.params.username);
    return otherUser.save( null,{useMasterKey:true});
  }catch(err){
    throw err;
  }                                                                                    

});

【讨论】:

    【解决方案3】:

    按照@TanzimChowdhury 的建议将Parse.Cloud.job 替换为Parse.Cloud.define 后,由于status.successstatus.error,我仍然遇到无效函数错误。状态未定义,将状态替换为response 已修复。

    工作代码

    Parse.Cloud.define("addBlockedFrom", function(request, response) { 
    var query = new Parse.Query(Parse.User);    
    query.equalTo("username", request.params.otherUser);                                                                                     
    query.each(function(user) {
          user.addUnique("blockedFrom", request.params.username);
          return user.save( null, { useMasterKey: true });
      }).then(function() {
        // Set the job's success status
        response.success("addBlockedFrom successfully.");
      }, function(error) {
        // Set the job's error status
        response.error("Error addBlockedFrom.");
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      相关资源
      最近更新 更多