#4565·hapi

21.4.5 中的类型不正确/过于严格

作者: joshkel创建于 2026年2月20日更新于 2026年2月22日
标签bug

运行时间

赞美音乐

QQ 运行时版本

24.13.1

模块版本

21.4.5 国家

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

21.4.4 (中文(简体) ).

用过

无回复( N)

  • 任何其他有关资料

无回复( N)

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

利用Joi的处理方式,在“request.params”和“requery.query”中直接提及适当打入的参数。 例如:

函数欢迎用户( id: 数字) { profile( id QQ"数字", “ID必须是数字” 类型); 返回“你好,用户身份证为${id}!” {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

服务器. route( { 方法:“GET”, 路径 : "/hello/{id}" 处理器 :( 请求, h) {{ // request.params.id 是数字,而不是字符串,因为Joi验证 返回{消息: helloUser(request.params.id)}; {\fn华文楷体\fs16\1cHE0E0E0} 选项 :{ 验证 : { 参数: Joi.object({ 编号:Joi.number (. required (), ~ , , ( ) , {\fn华文楷体\fs16\1cHE0E0E0} {\fn华文楷体\fs16\1cHE0E0E0}

  • ;

你的结果是什么?

从Hapi 21.4.5开始:

类型 “ 字符串” 参数不能指定为类型“ 数字 ” (2345)


-你期望得到什么结果?

没有错误。

我认为,在#4562中更严格的类型过于严格. 我欣赏更严格的打字方式(即使它打破了补丁版的编译-#4563), 但从我的理解来看, 这似乎 太 严格了- 依赖Joi验证查询和路由参数.