javascript - 从返回的查询数组中获取对象的值 (Parse.com + Node.js)

标签 javascript arrays node.js parse-platform

我以前使用过 Parse SDK,但用于 native 移动开发 - Objective-C 和 Java。 但是,我绝不是一名 JavaScript 开发人员。 我正在尝试使用 Node 并使用 Parse 来存储一些用于 API im 制作的东西。 这可能既是 JavaScript 的无能,也是 Parse 的问题。

应用上下文

I do a specific twitter scrape each day - a TweetDay - which is basically just a Parse row, with an Array value, this is an Array of TweetPairs.

A TweetPair is just a pairing of the tweet text and its associated id.

{ "id": "NCnjSDnjScn",
"text" : "Be cool Yolanda, be cool!" }

//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 数组只是正确指针的集合。

我在问什么 一旦 Parse 查询返回结果(延迟加载,无值),我该如何获取该结果的值。 即:我的查询返回一个对象,其中包含一组解析 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,用它们的实际值(推文消息)替换指针。

过去我已经能够使用 iOS SDK 执行此操作,我实际上只是专门询问 JS SDK,我该如何调用结果上的 fetch。 (在 iOS 中,结果已经是 PFObject 类型,所以很容易。)

Parse 控制台(为了完整性)

The TweetDay object with its array of tweetPairs All of the tweet pairs

干杯。

最佳答案

所以我找到了这个方便的小方法,叫做 .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

关于javascript - 从返回的查询数组中获取对象的值 (Parse.com + Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23330219/

相关文章:

javascript - 取消文本框的焦点

javascript - 使用 Node.js 构建 Android 应用

c - 将两个不同的动态分配数组传递给 C 中的函数

c - 如何在 C 中将整数拆分为单独的多位整数?

c++ - 在 cout 语句中连接数组大小

node.js - NPM 实时服务器 : command not found

javascript - 为什么 readdirSync 会自动对结果进行排序?

javascript - 如何使用 hasClass 来检测某个类是否不是我想要的类?

javascript - JavaScript MouseEvent 中的 e.metaKey 指的是哪个键?

javascript - 使用 webgl 和 meatballs.js 的响应式 Canvas