node.js - 在处理程序中引发错误时未调用 onPostHandler 扩展
问题描述
我正在从 hapi14 升级到 hapi17,当在处理程序中抛出或返回错误时 onPostHandlers 未被调用,这未列为 16 或 17 中的重大更改。
我相信这是从回调更改为异步的结果,但我很想确认它或找出在处理程序中抛出错误时阻止调用 onPostHandler 扩展的问题。
const Boom = require('boom');
const extensions = {
handleOnPostHandler: function (request, h) {
console.log('we hit it wooo');
return h.continue;
}
};
const operations = {
error: {
description: 'Endpoint that simulates errors',
auth: false,
handler: function (request, h) {
// comment me out to call the onPostHandler
throw new Boom('an error');
// uncomment me to call the onPostHandler
// return 'potato';
}
}
};
exports.register = function (server) {
server.ext('onPostHandler', extensions.handleOnPostHandler);
server.route({ method: 'GET', path: '/debug/error', config: operations.error });
};
我错过了一个严重的错误还是这是预期的?
解决方案
这是在Hapi6中删除的未记录功能,因此在升级到 >16 时无法模拟此功能。
推荐阅读
- ruby-on-rails - Rails 设计在每次请求时刷新缓存
- javascript - 如何在 QML 中使用 document.cookie 设置 cookie?
- python - Python - PrettyTable,如果一列中的文本很长,是否可以在新行中设置它?
- mysql - 在sql的文本字段中找到确切的数字
- qt - 从 Pycharm 启动 QT UI
- google-cloud-platform - 我可以使用 Cloud Build 在 VM 实例中执行 CI/CD 任务吗?
- java - 如何使用java遍历json中的字符串列表
- binding - 为什么我的 SwiftUI 列表没有更新?
- python - 使用熊猫时出现运行时错误
- mysql - MySQL 错误消息“对于此服务器版本,选择在此位置无效,期望