gpt4 book ai didi

javascript - Parse - JavaScript 指针查询,从指针返回解析对象的问题

转载 作者:行者123 更新时间:2023-11-28 06:27:52 25 4
gpt4 key购买 nike

我有一个带有多个指针的类,我想在响应中返回它们的完整对象(就像 SQL 中的联接)。下面的示例执行了此操作,但它返回 JSON 而不是 Parse 对象。如何返回包含指针中每个 Parse 对象的对象数组,而不对每个指针进行额外的查询?

    query.find().then(function(results){
/* Go Through Each Comment*/
var commentsArray = new Array();
for(i in results){
/* Set obj to current comment*/
var obj = results[i];
/* Get Post's Name */
var postName = obj.get("post").get("postName");
/* Get Post's Message */
var postMsg = obj.get("post").get("postMsg");
/* Get Post Author's Name */
var authorName = obj.get("post").get("postAuthor").get("name");
/* Get Comment's Message */
var commentMsg = obj.get("msg");
/* Get Comment's Author*/
var commentAuthor = obj.get("user").get("name");

/* Let's Put the Comment Information in an Array as an Object*/
commentsArray.push({
post:{
name: postName,
msg: postMsg
},
author: authorName,
comment: {
author: commentAuthor,
msg: commentMsg
}
});
}
})

已编辑(我正在客户端上使用 Swift 进行构建):

var query = new Parse.Query("Profile");

query.equalTo("objectId", objectId);

query.find().then(function(profile) {
response.success(profile) // Returns profile parse object
}, function(error) {
response.error(error);
});


//RETURNS
"<Profile: 0x153f96570, objectId: HKdukNBlmA, localId: (null)> {\n}"



Parse.Cloud.define("getProfiles", function(request, response) {
var query = new Parse.Query("Profile");

query.include("friendId");

query.find().then(function(profiles) {
var res = [];

profiles.forEach(function(profile) {
var obj = {
firstName: profile.get("firstName"),
lastName: profile.get("lastName"),
age: profile.get("age"),
gender: profile.get("gender")
};

obj.friend = {
firstName: profile.get("friendId").get("firstName"),
lastName: profile.get("friendId").get("lastName"),
};

res.push(obj);
});

response.success(res);
}, function(error) {
response.error("Error: " + error.code + " " + error.message);
});
});


// RETURNS
[{
firstName: "bob",
lastName: "smith",
age: 19,
gender: male
friend: {
firstName: "tim",
lastName: "wang",
}
},
{
firstName: "chris",
lastName: "scalia",
age: 24,
gender: male
friend: {
firstName: "ben",
lastName: "calder",
}
}]

我更喜欢前者。

最佳答案

调用者正在获取部分对象(只是一些属性),因为云函数用它构造的一些属性进行响应。要取回解析对象,请返回解析对象...

Parse.Cloud.define("getProfiles", function(request, response) {
var query = new Parse.Query("Profile");
query.include("friendId");
query.find().then(function(profiles) {
response.success(profiles);
}, function(error) {
response.error("Error: " + error.code + " " + error.message);
});
});

当然,这不需要是云函数,因为它不会为查询添加任何值。客户端只需运行查询即可。

另请注意,我看到的另一件事,尤其是 swift 作者调用 parse,是一种奇怪的习惯,即进行查询,获取 PFObject 数组作为响应,然后迭代这些对象并仅存储一些属性在本地数组中。这通常是一个错误,所以,在我看来,你的客户应该是这样的......

// no need to call a cloud function that just does a query
var query = PFQuery(className:"Profile")
query.includeKey("friendId")
query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
// don't iterate the objects here, saving bits of them in an array
// have an instance var that is an array of PFObjects
self.objects = objects;
} else {
print("Error: \(error!) \(error!.userInfo)")
}
}

关于javascript - Parse - JavaScript 指针查询,从指针返回解析对象的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34957377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com