Как сделать копию объекта синтаксического анализа в облаке?

Я хотел бы иметь копию существующего объекта синтаксического анализа, а затем внести некоторые изменения и сохранить его как новый объект синтаксического анализа, а не настраивать каждое поле вручную.

Вот моя облачная функция:

Parse.Cloud.define("SharePost", function(request, response) {
    var ShareUserID=request.params.ShareUserID;
    var UserID=request.params.UserID;
    var PostID=request.params.PostID;
    Parse.Cloud.useMasterKey();
    var user = new Parse.User({id:UserID});
    var shareuser = new Parse.User({id:ShareUserID});
    var query = new Parse.Query("Feed");
    query.get(PostID, {
    success: function(post) {
      var Post = Parse.Object.extend("Feed");
      var newpost = new Post()
      // here I would like to get the same object and make some edits o, it
      post.save( {
            success:function () {
                 response.success("Success");
            },
            error:function (pointAward, error) {
                 response.success(error);
            }
        }
    );    
    },
    error: function(error) {
      console.error("Got an error " + error.code + " : " + error.message);
    }
  });
}); 

person Stranger B.    schedule 11.02.2016    source источник


Ответы (1)


Возможно, есть более красивый способ, но один из способов, который наверняка сработает, не полагаясь на какие-либо тонкости, будет следующий:

function pfClone(fromObject, toObject, keys) {
    var _ = require('underscore');
    _.each(keys, function(key) {
        toObject.set(key, fromObject.get(key));
    });
}

назовите это так:

// after fetching a post called "post"
var Post = Parse.Object.extend("Feed");
var newpost = new Post();
var keys = ["title", "author" /* ...the keys you want to copy unchanged */ ];
pfClone(post, newpost, keys);
// change other properties of newpost here

Еще красивее была бы версия, которая анализирует переданный объект, а затем создает и инициализирует клон. Единственная неэлегантность любой из этих идей заключается в том, что (в прошлый раз я проверял) PFObject не позволяет вам анализировать ключи, поэтому вы застряли при передаче массива ключей.

person danh    schedule 11.02.2016