【发布时间】:2020-04-18 00:09:56
【问题描述】:
您好,我正在尝试使用 NestJs 创建一个 RestFul 应用程序,并且我正在尝试创建一个全局异常过滤器。
基本上我必须有 2 个端点。
/api/user/register/api/auth/token
每个端点都会引发不同的异常,但我似乎无法使其正常工作。它没有通过我的 ExceptionFilter 类。我错过了什么吗?
如果有人能帮我解决这个问题,我将不胜感激。
非常感谢。
AuthModule.ts
@Module({
imports: [
MongooseModule.forFeature([
{
name: 'AuthClient',
schema: AuthClientSchema,
}
]),
],
controllers: [AuthController],
providers: [
AuthService,
],
})
export class AuthModule { }
UserModule.ts
@Module({
imports: [
MongooseModule.forFeature([
{
name: 'User',
schema: UserSchema,
}
]),
],
controllers: [UserController],
providers: [UserService],
})
export class UserModule { }
AppModule.ts
@Module({
imports: [
DatabaseModule,
AuthModule,
UserModule,
],
providers: [
{
provide: APP_FILTER,
useClass: HttpExceptionFilter,
}
],
})
export class AppModule { }
Controller.ts
export class UserController {
@Post('register')
public register(@Body() registerDto: RegisterDto, @Res() res: Response): void {
return this.userService.create(registerDto);
}
}
export class AuthController {
@Post('auth')
public createToken(@Body() authDto: AuthDto, @Res() res: Response): void {
this.authService.findByUsername(authDto).then((data) => {
.....
})
}
}
Providers.ts
@Injectable()
export class AuthService {
async findByUsername(authDto: AuthDto) {
throw new HttpException('Opps something went wrong', 500);
}
}
@Injectable()
export class UserService {
async create(registerDto: RegisterDto) {
throw new HttpException('Unable to create', 500);
}
}
HttpExceptionFilter.ts
@Catch(HttpException)
export class HttpExceptionFilter extends BaseExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost): void {
console.log('<<<<<<>>>>>>>>>>>>>>>>>', exception)
}
}
main.ts
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('api');
await app.listen(3000);
}
bootstrap();
回购: click here
【问题讨论】:
-
可以提供repo吗?
-
@MarekUrbanowicz repo 添加。
标签: typescript nestjs