相关疑难解决方法(0)

NestJS 初始化和传递请求上下文的最佳实践是什么

我有一个全局拦截器,需要初始化我自己的请求上下文 DTO,并且我希望可以在处理当前请求的控制器中访问此 DTO。

到目前为止我找到的解决方案是创建 Request 范围内的可注入 RequestContext 类:

import {
    Injectable,
    Scope
} from '@nestjs/common';
import { Request } from 'express';
import { IncomingHttpHeaders } from 'http';

@Injectable({ scope: Scope.REQUEST })
export class RequestContext {
    public headers: IncomingHttpHeaders;
    ....

    initialize(request: Request) {
        this.headers = request.headers;
        .....
    }
}
Run Code Online (Sandbox Code Playgroud)

并将此类注入拦截器:

import {
    NestInterceptor,
    ExecutionContext,
    CallHandler,
    Injectable,
    Inject
} from '@nestjs/common';
import { Request } from 'express';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
import { RequestContext …
Run Code Online (Sandbox Code Playgroud)

typescript nestjs

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

nestjs ×1

typescript ×1