在 Parse 服务器 get() 方法中导致崩溃

In Parse server get() method causes crash

我有一个 find 查询 include 来获取指针数据。它工作正常,但如果指针对象不存在,则服务器崩溃。

这是我的查询:

var repliesQuery = new Parse.Query("Reply");
repliesQuery.include("author");
repliesQuery.find({
    useMasterKey: true
}).then(function(foundMessages) {
    var results = [];
    for (var i = 0; i < foundMessages.length; i++) {
        var rp = {};
        rp.title = foundMessages[i].get("title");
        rp.description = foundMessages[i].get("description");

        var author = foundMessages[i].get("author");
        rp.authorId = author.id;

        results.push(rp);
    }
    promise.resolve(results);
});

当作者存在时一切正常,但如果不存在则服务器崩溃。

我试着添加这个:

if (author.hasOwnProperty('id')) {
    rp.authorId = author.id;
}

但是问题还是没有解决

我们有什么办法可以解决这个问题吗?

这很可能是因为您正在访问 undefined 对象的 属性,在本例中 author,行

rp.authorId = author.id

如 Davi 建议的那样,检查 author 是否存在。

var repliesQuery = new Parse.Query("Reply");
repliesQuery.include("author");
repliesQuery.find({
    useMasterKey: true
}).then(function(foundMessages) {
    var results = [];
    for (var i = 0; i < foundMessages.length; i++) {
        var rp = {};
        rp.title = foundMessages[i].get("title");
        rp.description = foundMessages[i].get("description");

        var author = foundMessages[i].get("author");
        if (author) {
            rp.authorId = author.id;
        }

        results.push(rp);
    }
    promise.resolve(results);
});

您的支票

if (author.hasOwnProperty('id')) {
    rp.authorId = author.id;
}

也访问 author 的 属性,所以如果 authorundefined,它会再次抛出错误。