Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果出现错误,请替换答复_Javascript_Hapijs - Fatal编程技术网

Javascript 如果出现错误,请替换答复

Javascript 如果出现错误,请替换答复,javascript,hapijs,Javascript,Hapijs,如果稍后在请求流中发生错误,是否可能对处理程序内部的应答(在路由处理程序中调用的reply())感到遗憾 我希望捕获错误并返回状态代码500,其中包含适当的消息,而不是初始回复 function(request, reply) { reply(200) try { // code causing an error } catch(error) { // reset previous reply reply(Boom.badImplementation(erro

如果稍后在请求流中发生错误,是否可能对处理程序内部的应答(在路由处理程序中调用的reply())感到遗憾

我希望捕获错误并返回状态代码500,其中包含适当的消息,而不是初始回复

function(request, reply) {
  reply(200)
  try {
    // code causing an error
  } catch(error) {
    // reset previous reply
    reply(Boom.badImplementation(error))
  }
}

请说得具体一点。您想知道如何捕获错误还是想知道如何返回错误状态。稍后请检查hapi状态节点模块。npm安装hapi状态

  • npm安装hapi状态
  • var hstatus=需要(“hapi状态”)
  • 现在,请在您的catch块中添加以下内容-> 返回hstatus.XXXX(回复,{“error”:error})
    如果您参考hapi状态文件并为XXXX选择适当的值。在您的情况下,它应该是return hstatus.internalServerError(……)

    Reply返回一个错误和一个成功,它基本上是回调的包装器?!?我已经添加了一些代码来解释这个流程,一旦你调用reply,控制权就交给了hapi,为什么在回复后你会有一个try-catch呢?我正在基于hapijs构建一个库,其中HTTP资源类似于Ruby-on-Rails控制器,但要简单得多。我正在实现像before*-event和after*-event这样的before和after过滤器。@Jacob,当您添加reply(“您的内容”)时,进一步的执行将停止,并返回响应。在catch块中,您需要处理异常,然后按照我之前的建议使用hapi状态节点模块。