如何使用数据库回调函数重定向用户 - HAPI

时间:2017-08-18 16:21:38

标签: javascript node.js http hapijs

我希望我的用户在数据库响应之前显示加载图标,然后重定向到正确的页面。

我的代码如下:

// 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

那么如何在数据库加载后重定向我的用户

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

1 个答案:

答案 0 :(得分:1)

一个请求只能响应一次。 你应该做"加载东西"在你的前端而不是后端。

因此,当您发送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')
  }
}

在这种情况下,当您的前端收到回复时,它会重定向到相应的页面。