在 Hapi v17 中从回调到 async/await
From callbacks to async/await in Hapi v17
我正在使用 monk 在一个简单的 Hapi v17 应用程序中查询我的 mongodb。
在 v16 中,我曾经使用以下方法检索数据库中的所有项目:
videodb.find({}, {sort: {'created_on': -1}}, function(err, videos) {
console.log(videos);
return reply("ok");
});
在 v17 中这不起作用。 Hapi v17 始终需要 return 函数可见,而我的 "callback-powered" 函数在页面呈现发生时在最后执行。
这里的意思是:不能简单的把reply函数放在callback里面。我想我需要使用 promises 或 async/await 函数。但是我已经尝试了几个小时来了解如何做。
任何人都可以 "translate" 将上面的代码转换为有效的 Hapi v17 代码,只需调用 h.view("home") after monk 检索来自数据库的数据?
谢谢!
Monk 应该 return 一个承诺,这样你就可以将你的代码重写成
const videos = await videodb.find({}, {sort: {'created_on': -1}});
...
我正在使用 monk 在一个简单的 Hapi v17 应用程序中查询我的 mongodb。
在 v16 中,我曾经使用以下方法检索数据库中的所有项目:
videodb.find({}, {sort: {'created_on': -1}}, function(err, videos) {
console.log(videos);
return reply("ok");
});
在 v17 中这不起作用。 Hapi v17 始终需要 return 函数可见,而我的 "callback-powered" 函数在页面呈现发生时在最后执行。
这里的意思是:不能简单的把reply函数放在callback里面。我想我需要使用 promises 或 async/await 函数。但是我已经尝试了几个小时来了解如何做。
任何人都可以 "translate" 将上面的代码转换为有效的 Hapi v17 代码,只需调用 h.view("home") after monk 检索来自数据库的数据?
谢谢!
Monk 应该 return 一个承诺,这样你就可以将你的代码重写成
const videos = await videodb.find({}, {sort: {'created_on': -1}});
...