javascript - Hapi v17 中从回调到 async/await

标签 javascript async-await hapi.js

我正在使用 monk 在一个简单的 Hapi v17 应用程序中查询我的 mongodb。

在 v16 中,我曾经使用以下方法检索数据库中的所有项目:

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

在 v17 中这不起作用。 Hapi v17 始终要求返回函数可见,并且当页面渲染发生时,我的“回调驱动”函数将在最后执行。

这句话的意思是:我不能简单地将回复函数放在回调中。我想我需要使用 Promise 或 async/await 函数。但我花了好几个小时试图理解其中的原理。

任何人都可以将上面的代码“翻译”为有效的 Hapi v17 代码,该代码只需在 Monk 从数据库检索数据之后调用 h.view("home") 吗?

谢谢!

最佳答案

Monk 应该返回一个 promise ,以便您可以将代码重写为

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

关于javascript - Hapi v17 中从回调到 async/await,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50086805/

相关文章:

javascript - 等待同步函数是否同步返回值?

node.js - Node/express 异步函数 res.send 出现在控制台而不是页面中

javascript - 我应该创建一个 hapijs 插件还是使用 server.ext 来筛选标题中的 api-key

php - 将数据库值传递给 JavaScript

javascript - 如何将任何数组传递到使用 window.open() 打开的窗口

javascript - try-catch 和 async wait js 中的更改顺序?

javascript - promise 拒绝可能未处理的错误 :

node.js - 将 HTTPS 服务器从 Express 迁移到 Hapi

javascript - 下载 Excel 文件在 Firefox 中不起作用,但在 Chrome 中可以

javascript - React 和 localStorage 获取 NaN