[英]Fetching Object's values from a returned Array of a Query (Parse.com + Node.js)
我以前使用過Parse SDK,但對於本機移動開發人員-Objective-C和Java而言。 但是,我絕不是 JavaScript開發人員。 我正在嘗試使用Node,並且正在使用Parse為API即時存儲存儲一些東西。 這可能是JavaScript的不勝枚舉,同時也是Parse的問題。
應用環境
我每天都會進行特定的Twitter抓取-TweetDay-它基本上只是一個Parse行,帶有Array值,這是TweetPairs的Array。
TweetPair只是推文文本及其關聯ID的配對。
{“ id”:“ NCnjSDnjScn”,
“ text”:“要酷,Yolanda,要酷!” }
//Look for a Day in the database against the day we supply
query.equalTo("createdAt", req.params.date );
query.find({
success: function(results) {
console.log("Successfully retrieved " + results.length + " item");
// assume there is only ever one result
var object = results[0];
console.log(object.id);
var tweetsPointer = object.get("Pairs");
//## IT'LL BLOW UP HERE ##
// tweetsPointer isn't a Parse object, so it doesn't know about .fetch
tweetsPointer.fetch({
success: function(tweets) {
// The object was refreshed successfully.
console.log(tweets);
var arr = new Array();
for (var i = 0; i < tweets.length; i++) {
arr[i] = tweets[i]["text"];
}
// just return an array of the tweet messages for that day.
res.send(arr);
},
error: function(myObject, error) {
// The object was not refreshed successfully.
// error is a Parse.Error with an error code and description.
}
});
},
error: function(error) {
console.log("Error: " + error.code + " " + error.message);
res.send("Error: " + error.code + " " + error.message);
}
});
這就是我想要做的。 通常,在iOS SDK中,我可以執行查詢,然后對查詢返回的指針進行提取以獲取實際值(因為查詢返回了PFObject指針)。 值得注意的是,我返回了正確的Parse對象ID,而我的Pairs數組只是正確指針的集合。
我要問的是解析查詢返回的結果是我(延遲加載,沒有值),然后如何獲取該結果的值。 即:我的查詢返回一個Object,帶有一個解析ID數組,與實際值相反。 我現在如何用值填充對象的數組。
我目前收到的
如果在上面的代碼中,對於成功案例,我只是返回結果對象。 即:
success: function(results) {
// assuming only ever one result
var object = results[0];
res.send(object);
...
}
我很高興在瀏覽器中看到
{
Pairs: [
{
__type: "Pointer",
className: "TweetPair",
objectId: "wzDNeKJO2n"
},
{
__type: "Pointer",
className: "TweetPair",
objectId: "cwXMSPTYEb"
},
{
__type: "Pointer",
className: "TweetPair",
objectId: "0FEPlokeIo"
},
..
..
],
objectId: "5TX1Do98jY",
createdAt: "2014-04-27T07:30:51.658Z",
updatedAt: "2014-04-27T07:30:51.658Z"
}
這是我從Parse的經驗中得到的期望。 但是,我想要的不僅是這些推文的指針,而是這些推文本身。
即:
{
Pairs: [
{
id: "<twitter id>",
text: "Be cool yolanda, be cool!"
},
{
id: "sdjvbesjvhBJH",
text: "Zeds dead baby, Zeds dead."
},
..
..
],
objectId: "5TX1Do98jY",
createdAt: "2014-04-27T07:30:51.658Z",
updatedAt: "2014-04-27T07:30:51.658Z"
}
這就是.fetch通常用於的目的。 即:我將在此數組上調用.fetch,以將指針替換為其實際值(tweet消息)。
過去我可以使用iOS SDK做到這一點,實際上我只是在問JS SDK,如何處理結果調用。 (在iOS中,結果已經是PFObject類型,因此很簡單。)
解析控制台(出於完整性考慮)
干杯。
所以我發現了這個方便的小方法,叫做.include();。
上面的代碼
query.equalTo("createdAt", req.params.date );
query.include("Pairs"); // <-----------------------------win
query.find({
success: function(results) {
console.log("Successfully retrieved " + results.length + " item");
//Assume one result
var object = results[0];
var pairs = object.get("Pairs");
var arr = new Array();
for (var i = 0; i < pairs.length; i++) {
arr[i] = pairs[i].get("text");
}
res.send(arr);
...
}
返回推文列表,而不僅僅是推文指針。
[
"I can feel the collingwood jealousy haha",
"@Real_Liam_Payne Now you know how i feel",
"Oh good, I feel much better, after wasting what was meant to be a study day. Classic Charle.",
"RT @NatalieTosh: Almost feel as nervous as if I was watching my own team. #ALeagueFinals #GoRoar",
"@BronB28 Feel the warmth of the ground All roads lead to us around Through endless sunsets and towns I can feel it sitting down here"
]
請參閱: https : //www.parse.com/questions/javascriptjquery-pointer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.