#1972·elysia

Elysia 2: 为具有自己的钩子的路由删除 guard-level detail (OpenAPI 标签)

作者: netsvetoch创建于 2026年8月19日更新于 2026年8月19日

Elysia的哪个版本在运行?

2.0.0- exp.64 (与 @elysiajs/openapi 2.0.0-exp.1) (中文(简体) ).

你的电脑是什么平台?

Linux x86 64 (英语).

你在使用什么样的环境

1.3.14号舱

你在使用动态模式吗?

没有

  • 什么步骤可以复制虫子?

从“ elysia ” 导入{ Elysia, t }; 从“@elysiajs/openapi”导入{openapi};

Const app = 新爱丽西亚( ) 使用( openapi ()) .guard({细节:{标记: ["Admin"]]}, (app) =>. 应用 .get ("/平方", ()"ok") 后 () "/与身体," {正文:t.object({名称:t.String ()}}}, ({身体} {身体} {身体,} {身体, , (中文(简体) ). (三)

Cont spec = 等待应用 .handle(新请求 ("http://localhost/openapi/json")). .then(r)- r.json()); ; .

spec.paths ["/plan"]. get.tags; // ["Admin"] * * * * spec.paths ["/与-body"]. post.tags; // 未定义QQ


什么是预期的行为?

警卫的`详细'应适用于在警卫范围内登记的每条路线,包括宣布自己下钩的路线(`body',`query',`params',.)。 用于`POST/同体'的OpenAPI操作应包含`tags: ['admin']'。

你看见什么了?

没有自己钩子对象的路由继承了警卫的"详细",但有钩子的路由完全丢失了:他们的"hooks.detail"结尾为"未定义",因此"const openapi"("const operation = {.hooks.detail }`")没有给它们贴上标记.

警卫连锁通过 " commerdHook " ( " dist/utils.mjs " )合并成 " RouteHook " ( " commerdHook " ),后者合并了计划与生命周期钩,但从未合并过 " 细节 " 。

补充资料

- 相关:1947年-建造者级`tags'(`新Elysia({标记})')根本没有向路线传播。 这份报告是关于卫兵路线的,这条路线部分起作用,但无声地为有自己钩子的路线“详细”。
- 在每个路线上明确设置`详细.tags'。

您是否尝试去掉 “ 节点” 和 “ bun.lockb ” 再尝试一次 ?

在elysia@ 2.0.0-exp.64的清洁安装上再出.

内容来源: elysiajs/elysia