我们在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();
}
}