迁移后解析脏对象不起作用

时间:2016-05-26 13:44:55

标签: node.js mongodb parse-platform mean-stack

我有一个关于解析云代码的问题。以下云代码在迁移前用云代码编写,但在迁移后它没有返回所需的输出。

var streamClass = Parse.Object.extend("Streams");
        streamObj = new streamClass({
            objectId: "dummy",
            streamerId: usersArr[i]
        });
        streamObj.dirty = function() {return false;};

有两个实体,即流和用户。每个用户都有流。因此在流表中有用户指针(streamerId)。如果用户没有创建任何流,那么我正在创建流虚拟对象并将用户(streamerId)设置为流对象中的指针。当此代码作为API调用时,它在解析服务器迁移之前返回带有用户(streamerId)信息的流虚拟对象。迁移后,上面的代码给出了以下输出。

{
"result": [
    {
        "__type": "Pointer",
        "className": "Streams",
        "objectId": "dummy"
    }
]

}

可以注意到输出中没有用户(streamerId)信息。在这方面,有谁可以帮助我。

我没有保存此streamObj。我将此streamObj返回给IOS应用程序。我还通过google chrome中的邮递员测试了它。以下是一个完整的函数,它接受用户对象的数组和流对象的数组,并返回一个包含用户及其相关流的对象。

function getUsersAndRecentStreams(usersArr, streamsArr) {
var responseObj = [];
var moment = require('moment');
var now = moment();
var currentDate = new Date();
for( var i=0; i<usersArr.length; i++ ) {
    var streamObj = null;
    for( j=0; j<streamsArr.length; j++ ) {

        var streamerObj =  streamsArr[j].get('streamerId');
        if( streamerObj.id === usersArr[i].id ) {
            if( moment(streamsArr[j].get('showTimeStart'))  <= now && moment(streamsArr[j].get('showTimeEnd'))  >= now ) {
                streamObj = streamsArr[j];
                break;
            }

            if( streamObj == null) {
                streamObj = streamsArr[j];
            } 
            else {
                if( moment(streamsArr[j].get('showTimeStart'))  <= now ) {
                    streamObj = streamsArr[j];
                }
            }
        }
    }

    if( streamObj == null ) {
        var streamClass = Parse.Object.extend("Streams");
        streamObj = new streamClass({
            objectId: "dummy",
            streamerId: usersArr[i]
        });
        streamObj.dirty = function() {return false;};
        var streamObj = new streamObj();
    }
    responseObj.push(streamObj);
}

return responseObj;

}

有两种情况。 1)当streamObj不为null时。在这种情况下,输出是正确的。 2)streamObj为null时的第二种情况。在这种情况下,以下输出是返回,这是不希望的。

{
    "result": [
        {
            "__type": "Pointer",
            "className": "Streams",
            "objectId": "dummy"
        }
    ]
}

当streamObj为null时,以下所需的输出应返回此函数。

    {
    "result": [
        {
            "__type": "Pointer",
            "className": "Streams",
            "objectId": "dummy",
            "StreamerId": userObject   
        }
    ]
}

0 个答案:

没有答案