我们正在使用NestJS为我们的NodeJS应用程序。在我们的应用程序中,我们有一些中间件/守卫/拦截器来创建用户请求上下文,验证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();
}
}
1条答案
按热度按时间kokeuurv1#
您可以使用
cls-hooked
或其他类似的模块来创建自定义上下文。为此,您可以使用上下文创建器中间件,如:然后,您可以在其他服务中使用您的上下文,例如:
请记住在AppModule中应用中间件: