如何使用数据库callback函数redirect用户 – HAPI

我希望我的用户被显示一个加载图标,直到数据库响应,然后被redirect到正确的页面。

我的代码是沿着的:

// handler function handler(request, reply) { reply.view('loading') // show loading with css // do database stuff... // database callback function function db_callback_function() { reply.redirect('user/page') // after db responds, redirect. } } 

Hapi说我只能使用一次回复界面:

 Unhandled promise rejection (rejection id: 1): Error: reply interface called twice 

那么如何在数据库加载redirect我的用户呢?

编辑:我知道我需要使用前端显示加载器。 我只是不知道我的后端会告诉我的前端何时redirect。

一个请求只能响应一次。 你应该在前端执行“加载内容”而不是后端。

所以当你发送一个HTTP请求时,你应该把你的状态标记为加载。

对于您的示例代码,服务器代码应修改为:

 // handler function handler(request, reply) { // reply.view('loading') <- REMOVE THIS LINE // do database stuff... // database callback function function db_callback_function() { reply.redirect('user/page') } } 

在这种情况下,当您的前端收到响应时,它将redirect到相应的页面。