【问题标题】:Appending Data to an Array in Parse Cloud Code在 Parse Cloud Code 中将数据附加到数组
【发布时间】:2016-02-20 00:33:44
【问题描述】:

我正在编写 Parse Cloud Code 的函数以将双精度附加到投票系统的数组中:

Parse.Cloud.define("addVote", function(request){

    Parse.Cloud.useMasterKey();

    var id = request.params.key
    var vote = request.params.vote

    var query = new Parse.Query("Post");
    query.equalTo("objectID", id);
    query.find({
        success: function(poll){
            poll.add("votes", vote)
            poll.save();
        },
        error: function(error){
            console.error("Got an error");
        }
    });
});

我正在使用以下方法调用该函数:

PFCloud.callFunctionInBackground("addComment", withParameters: ["key" : key, "vote": self.vote)]

我收到响应“TypeError: Object has no method 'add'”。我做错了什么导致此错误?

【问题讨论】:

  • 您好像错过了结束语 ]。就在这里吗?
  • 什么是poll?你在哪里定义它?为什么你认为它确实有一个方法add?
  • 为了解决来自@AaronBrager 的 cmets:我只是错过了这篇文章的结尾 ]。我已经更新了我的问题以更准确。在 js 中,我的印象是,如果对帖子的查询成功,“poll”将是返回的对象(“poll”将是一个包含数组“votes”的“Post”对象)。这是正确的吗?
  • 另外,我认为add 方法用于将值附加到javascript中的数组。这不是真的吗?

标签: javascript arrays swift parse-platform cloud


【解决方案1】:

我找到的解决方案:

Parse.Cloud.define("addVote", function(request){

    Parse.Cloud.useMasterKey();

    var id = request.params.key
    var answer = request.params.vote

    var query = new Parse.Query("Post");
    query.get(id, {
        success: function(post){
            post.add("votes", vote);
            post.save();
        },
        error: function(error){
            console.error("Got and error");
        }
    });
});

【讨论】:

    【解决方案2】:

    以下代码是更新数据用户的示例。此代码 100% 在 back4app.com 上进行了测试

    在使用此代码之前,您必须声明您的变量,如下所示 导出异步函数 prepareForSending(form) { // 可用模式:文本、数字、文件、指针和其他你需要的模式

    custome some of my code with your needs
      let FORM = [
        {
          mode: "text",
          object: "name",
          value: form.name
        },
        {
          mode: "text",
          object: "phone",
          value: form.phone
        },
        {
          mode: "text",
          object: "address",
          value: form.address
        },
        {
          mode: "text",
          object: "clientStatus",
          value: form.clientStatus.selected
        },
        {
          mode: "pointer",
          object: "role",
          value: {
            __type: "Pointer",
            className: "_Role",
            objectId: form.roles.selected
          }
        }
      ];
    
      return FORM;
    }
    

    然后,现在你可以使用下面的代码了

    export function ParseUserManualUpdater(ID, DATA) {
      //ID is a users objectId target
      return new Promise(async (resolve, reject) => {
        const params = {
          id: ID,
          data: DATA
        };
        const Cloud = await Parse.Cloud.run("usersUpdater", params);
        if (Cloud == "success") {
          resolve(true);
        } else {
          resolve(false);
        }
      });
    }
    

    并将此代码上传到您的码云

    Parse.Cloud.define("usersUpdater", function(request, response) {
      //  how can I use GET parameters here??
      var ID = request.params.id;
      var DATA = request.params.data;
    
      const User = new Parse.User();
      const query = new Parse.Query(User);
      query.get(ID).then(user => {
        for (let i = 0; i < DATA.length; i++) {
          let mode = DATA[i].mode;
          let object = DATA[i].object;
          let value = DATA[i].value;
          if (mode == "text") {
            user.set(object, value);
          } else if (mode == "number") {
            user.set(object, Number(value));
          } else if (mode == "pointer") {
            user.set(object, value);
          } else if (mode == "file") {
            user.set(
              object,
              new Parse.File(value.file.name, {
                base64: value.file.base64
              })
            );
          }
        }
        user.save(null, {useMasterKey: true}).then(
          resSucces => {
            response.success("success");
          },
          resError => {
            response.error("error");
          }
        );
      });
    });
    

    我希望,我的代码可以帮助那里的人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多