От обратных вызовов до async / await в Hapi v17 - PullRequest
0 голосов
/ 29 апреля 2018

Я использую monk для запроса моего mongodb в простом приложении Hapi v17.

В версии 16 я использовал для извлечения всех элементов в моей базе данных, используя:

videodb.find({}, {sort: {'created_on': -1}}, function(err, videos) {
  console.log(videos);
  return reply("ok");
});

В версии 17 это не работает. Hapi v17 всегда требует, чтобы функция возврата была видимой, а мои функции с «обратным вызовом» выполняются в последнюю очередь, когда происходит рендеринг страницы.

Смысл этого таков: я не могу просто поместить функцию ответа внутри обратного вызова. Я думаю, что мне нужно использовать обещания или функции async / await. Но я часами пытался понять, как.

Может ли кто-нибудь «перевести» приведенный выше код в действительный код Hapi v17, который просто вызывает h.view («home») после того, как монах получил данные из базы данных?

Спасибо!

1 Ответ

0 голосов
/ 29 апреля 2018

Монах должен вернуть обещание, чтобы вы могли переписать свой код в

const videos = await videodb.find({}, {sort: {'created_on': -1}});
...
...