NestJS:如何在中间件中获取ExecutionContext

时间:2019-04-29 08:29:11

标签: javascript node.js nestjs

我们在NodeJS应用程序中使用NestJS。 在我们的应用中,我们有一些中间件/防护/拦截器来创建用户请求上下文,验证jwt令牌,拦截请求/响应等。

我们还实现了一些自定义装饰器,以设置端点的元数据。 在guards / intercetpors中使用此数据非常容易,因为您可以在canActivate / intercept函数中使用ExecutionContext。

但是我们在中间件中深深地缺少此功能。 是否有机会在NestJS中间件中获取/注入ExecutionContext?

例如

export class SomeMiddleware implements NestMiddleware {
    constructor(@Inject('ExecutionContext') context: ExecutionContext) {}

    use(req, res, next) {
        // get data from context / decorator
        Reflect.getMetadata(SOME_KEY, context.getHandler());

        next();
    }
}

0 个答案:

没有答案