В Parse server метод get() вызывает сбой
У меня есть 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;
}
Но до сих пор вопрос не решен.
Есть ли способ исправить эту проблему?
1 ответ
Решение
Скорее всего, вы получаете доступ к свойству undefined
объект, в данном случае author
, в очереди
rp.authorId = author.id
Как предлагает Дави, включите проверку, если 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
, поэтому снова будет выдано сообщение об ошибке, если author
является undefined
.