小编Boy*_* Li的帖子

有没有办法在 Nest JS 的装饰器中获取请求上下文

我正在尝试构建一个装饰器来“记录”请求信息

export const Tracking = () => {
  return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
    const method = descriptor.value;
    descriptor.value = async function(...args: any[]) {
      console.log(/** Request info */)
      console.log(/** Headers, Body, Method, URL...*/)
      return method.call(this, ...args);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

并尝试在这样的控制器方法上使用它。

export class Controller {

  @Get('/path')
  @Tracking()
  public async getData(@Headers('user') user: User) {
    return this.service.getData(user.id);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,有没有办法将拦截器应用于控制器的某些方法?
或者是否存在用于请求的线程(类似)级上下文?

谢谢!!

node.js typescript nestjs

2
推荐指数
1
解决办法
4640
查看次数

标签 统计

nestjs ×1

node.js ×1

typescript ×1