#4582·hapi

当错误来自验证器时,Boom 错误的数据属性会被混淆

作者: hs-kgoriunov创建于 2026年7月9日更新于 2026年9月2日
标签bug

运行时间

赞美音乐

QQ 运行时版本

页:1

模块版本

页:1

QQ 最后一个模块版本没有发行

v20.3.0 (单位:千美元)

用过

hopi 应用程序

  • 任何其他有关资料

我认为,https://GitHub.com/hapijs/hapi/pul/4350。 提出了边缘案例问题。

你想达到什么目的 或再生的步骤?

以下是一个展示这个问题的分馏测试。

缩略语 从 “@hapi/boom” 导入 room; // 10. 0.1 从 “@hapi/ hapi” 导入 Hapi; // 21.4. 9 从“joi”导入Joi; // 18.2.3

从“ 节点: sassert” 导入还原; 导入 { 在 Each 之后, 在 Each 之前, 描述它 } 从 “ 节点: test” 导入 ;

描述 (“ 过度操纵的演示” ) () {{{ 让服务器; cons myError = boo.bad request("我的消息",{我的:"数据"});

在Each( 同步( ) )\ { { // 初始化 Habi 服务器 = Hapi. server (); 等待服务器。 初始化( I) ;

/ 设置一个基本全局错误响应 formatter 以曝光错误的数据属性 服务器.ext("nopresponse"), (request, h) {{ c. 请求;

如果(应答.isBoom){ cont 错误 = 响应; 错误. utput. paidload={ 错误:{ 消息: 错误. message, 数据:错误.data, {\fn华文楷体\fs16\1cHE0E0E0}

  • ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

返回 h. 继续;

  • ;
  • ;

Each( 同步( ) ) #{ 等待服务器. stop () ;

  • ;

它("从处理器扔出我的错误"), async () {{{{{} 服务器. route( { 方法:“GET”, 路径 : "/" 处理器: 函数 (){ 抛出我的忧愁; {\fn华文楷体\fs16\1cHE0E0E0}

  • ;

const res = 等待服务器. inject({) 方法: "获得", URL:",",",","

  • ;

/ 请检查url=值 (帮助). 这一说法经过了哈皮版的无名化 profile.drictqual( results. 错误:{ 留言:"我的留言", 数据:{我的:"数据"}, {\fn华文楷体\fs16\1cHE0E0E0}

  • ;
  • ;

它("从验证计划中推出我的错误"), async () {{{ 服务器. route( { 方法:“GET”, 路径 : "/" 处理器: 函数 (){ 回到"你好世界!"时; {\fn华文楷体\fs16\1cHE0E0E0} 选项 :{ 验证 : { 查询:Joi.object({ 假人:Joi.required (. error (my Error)), (英语). ~ , , ( ) , {\fn华文楷体\fs16\1cHE0E0E0} {\fn华文楷体\fs16\1cHE0E0E0}

  • ;

const res = 等待服务器. inject({) 方法: "获得", URL:",",",","

  • ;

/ 请检查url=值 (帮助). Hapi v21 的断言失败 profile.drictqual( results. 错误:{ 留言:"我的留言", / 数据为 {默认错误: myError} 从 Hapi v21 开始 数据:{我的:"数据"}, {\fn华文楷体\fs16\1cHE0E0E0}

  • ;
  • ;
  • ;

你的结果是什么?

控制台
$节点 -- test example.mjs
QQ 问题展示
QQ 从处理器丢出 myError (23.230669ms)
QQ 从验证方案丢出 myError (1.1 012993 ms)
QQ问题展示 (35.352659ms)
I 测试 2
i 套间 1
我通过 1
我失败1
我取消了 0
我跳过0
我要做0个
时间长度 399.773655分

失败测试 :

测试实例.mjs:62:3
QQ 从验证方案丢出 myError (1.1 012993 ms)
Assertion Error [ERR ASSERTION]: 严格意义上的等值:
+ 键
. . . . . . .