从零开始实现一个 NestJS - 元数据

尽管在 tsconfig.json 中已经启用了元数据。

但还是要引入 reflect-metadata 这个库。

// 入口文件 main.ts
import 'reflect-metadata'

此外,还需要声明一些 token 作为绑定的元数据的 key

// token.ts
export const TokenConfig = {
  Controller: "__Controller__",       // 标识控制器
  Router: "__Router__",               // 标识路由
  RouterMethod: "__Router_Method__",  // 标识请求方法
  Moudle: "__Module__",               // 标识模块
  Params: "__Params__",               // 标识请求参数
  Injectable: "__INJECTABLE__",       // 标识可注入
  HttpStatus: "__HTTP_STATUS__"       // 标识 http 状态码
} as const satisfies Record<string, `__${string}__`>

本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。


从零开始实现一个 NestJS - 元数据
http://www.inksha.com/archives/cong-ling-kai-shi-shi-xian-yi-ge-nestjs---yuan-shu-ju
作者
inksha
发布于
2025年02月27日
许可协议