如何使用数据库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到相应的页面。