nestjs中@Controller()简单实现原理

发布时间:2024年01月14日

@Controller实现原理的简单实现,在真实的应用中,路由处理会更加复杂,包括错误处理、中间件支持、参数解析等

案例1

import 'reflect-metadata';

function Controller(prefix: string = '') {
   
  return function (constructor: Function) {
   
    Reflect.defineMetadata('prefix', prefix, constructor);
    // 可以附加更多元数据,例如用于路由的方法和路径
  };
}

function Get(path: string): MethodDecorator {
   
  return function (target, propertyKey) {
   
    Reflect.defineMetadata('route', {
    method: 'GET', path }, target, propertyKey);
  };
}

function Post(path: string): MethodDecorator {
   
  return function (target, propertyKey) {
   
    Reflect.defineMetadata('route', {
    method: 'POST', path }, target, propertyKey);
  };
}

@Controller('/users')
class UserController {
   
  @Get('/')
文章来源:https://blog.csdn.net/qq_35094120/article/details/135580778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。