У меня есть проект, который использует Restify, Node.js и MongoDB. Это небольшой проект для тестирования Restify, где у меня есть несколько статей с комментариями к ним.
Я на самом деле пытаюсь создать маршрут, который берет заголовок статьи и возвращает все статьи с одинаковыми именами (некоторые статьи имеют одно и то же имя) и связывает с ними комментарии.
Итак, в общем, я сделал это:
server.get('/articles/title/:title', (req, res, next) => {
Article.find({'title': req.params.title}, (err,articles) => {
if(err) {
return next(new errors.InvalidContentError(err.errors.name.message));
}
for(var i=0;i<articles.length;i++) {
Comment.find({'article': articles[i]._id}, (err, comments) => {
articles[i]["link"] = comments;
});
}
res.send(articles);
next();
});
});
Но этот код не работает, потому что Comment.find является асинхронным.
Итак, мой вопрос, как я могу сделать этот код синхронным? Я посмотрел в документации, но я не могу найти что-то, что действительно может мне помочь. Я даже не уверен, что мой способ мышления подходит для этого.