Rin*_*ieR 5 node.js typescript nestjs
我刚刚制作了一个全局异常过滤器,看起来与 Nest 文档上的完全一样: https: //docs.nestjs.com/exception-filters
它捕获了除了 Nest 生命周期之外的所有内容,所以我想知道,如何为该过滤器未捕获的异常创建一个全局过滤器,例如 Nest 的微服务(kafka 传输)事件?
小智 1
如果您使用混合应用程序,这意味着带有 rpc 微服务的 http,则全局过滤器仅用于 http。要共享全局配置,您必须设置inheritAppConfig: true
rpc-异常.filter.ts
import { ExceptionFilter, Catch, ArgumentsHost, HttpException } from '@nestjs/common';
import { KafkaContext, RpcException } from '@nestjs/microservices';
import { throwError } from 'rxjs';
@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
async catch(exception: HttpException, host: ArgumentsHost) {
const hostType = host.getType(); // 'rpc'
const context = host.switchToRpc().getContext<KafkaContext>();
return throwError(() => new RpcException(exception));
}
}
Run Code Online (Sandbox Code Playgroud)
主要.ts
app.connectMicroservice(
{
transport: Transport.KAFKA,
options: {
client: config.KAFKA_CLIENT_CONFIG,
consumer: {
groupId: config.MODULE_ALIAS,
},
},
} as KafkaOptions,
{ inheritAppConfig: true });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |