通过Hapi的文档,并尝试谷歌,我可以找到如何设置404页面,但我找不到任何有关设置500页面的信息 .
我尝试添加如下错误处理程序:
server.on('internalError', function (request, err) {
console.log("Internal Error:", err);
request.reply.view('errors/500', {
error: err
}).code(500);
});
但我的钩子永远不会被召唤 . 是否有一种简单的方法可以使用Hapijs返回自定义500页面?
1 回答
您需要在
onPreResponse
扩展函数中捕获错误响应,并在那里设置新的HTML响应 .同样的原则适用于任何Boom错误,无论是由您在处理程序中设置还是由内部hapi设置(例如,404 Not found或401 Unauthorized from failed auth .
以下是您可以尝试的示例:
index.js
templates/error.hbs
通过转到http://localhost:4000/来查看您的自定义错误页面:
这种方法可以捕获任何Boom响应,包括由hapi内部而不是由我们生成的响应 . 因此也适用于4xx错误 . 尝试导航到http://localhost:4000/notapage,你将获得相同的漂亮页面,但对于404: