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