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

标签 javascript node.js http hapi.js

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

我的代码是这样的:

// 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说我只能使用一次回复接口(interface):

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

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

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

最佳答案

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

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

在这种情况下,当您的前端收到响应时,它将重定向到适当的页面。

关于javascript - 如何使用数据库回调函数重定向用户 - HAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45761069/

相关文章:

web-services - 如何使用 Yesod 和 Http-Conduit 将 FileInfo 发布到 Web 服务?

javascript - 继续不会自动滚动

javascript - 如何在指令之外传递 'scope' 参数

node.js - 恢复: Passing User Data

javascript - bool 检查在 NodeJS 中不起作用

java - 由于 java 中的 session ,两个 HTTP 请求(一个接一个)不起作用

swift - 如何在 Swift 中调用 HTTP Get 并保存到变量中?

javascript - 什么是正确的 Oculus Rift 桶形畸变半径函数?

javascript - 两个字母的对象 "values"在 Chrome 调试器中是什么意思?

javascript - 需要从路由中渲染变量以在客户端 JavaScript 中使用