nestjs - NestJS 服务中的自定义 TypeORM 错误
问题描述
我正在玩NestJS
,我想把抛出的错误TypeORM
转换成我可以控制的形状。
现在,我只是试图捕捉抛出的错误TypeORM
并将其注销以查看我的自定义过滤器是否正常工作。但不幸的是,我console.log
在过滤器中的声明从不记录。
这是我的服务和过滤器的精简版
用户服务.ts
export class UserService {
constructor(
@InjectRepository(Users)
private readonly userRepository: Repository<Users>,
) {}
@UseFilters(new TypeOrmFilter())
async create(createUserDto: CreateUserDto) {
const user = this.userRepository.create(createUserDto);
return this.userRepository.save(user);
}
}
类型-orm-filter.ts
@Catch()
export class TypeOrmFilter implements ExceptionFilter {
catch(exception: Error, host: ArgumentsHost) {
console.log('\nI have caught an error\n', exception);
throw exception;
}
}
这是引发的错误的日志输出TypeORM
[Nest] 61496 - 04/11/2021, 9:01:42 PM [ExceptionsHandler] invalid input syntax for type uuid: "123e4567" +2482ms
QueryFailedError: invalid input syntax for type uuid: "123e4567"
at new QueryFailedError (my-nest-project/error-project-nestjs/node_modules/typeorm/error/QueryFailedError.js:11:28)
at PostgresQueryRunner.<anonymous> (my-nest-project/error-project-nestjs/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:247:31)
at step (my-nest-project/error-project-nestjs/node_modules/typeorm/node_modules/tslib/tslib.js:141:27)
at Object.throw (my-nest-project/error-project-nestjs/node_modules/typeorm/node_modules/tslib/tslib.js:122:57)
at rejected (my-nest-project/error-project-nestjs/node_modules/typeorm/node_modules/tslib/tslib.js:113:69)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
解决方案
你错过了await
:UserService#create
p
提示:如果你正确配置 ESLint,这可能永远不会再发生,因为你已经用await
( https://eslint.org/docs/rules/require-await ) 标记了该方法。或者只是强制输入返回(https://github.com/typescript-eslint/typescript-eslint/blob/v3.10.1/packages/eslint-plugin/docs/rules/explicit-module-boundary-types.md)
推荐阅读
- openedge - 是否可以从另一个窗口触发部分调用窗口过程?
- git - 无论如何只允许詹金斯推入位桶?
- android - 让一些按钮仅在横向模式下显示
- c# - 将部分视图 CheckBox 绑定到模型属性
- c - 关于套接字编程中这个 strncpy 函数的问题
- powershell - Windows 命令行上是否有添加本地打印机端口的命令?
- ansible - 如何使用 win_scheduled_task 设置“停止现有实例”?
- bash - 为什么嵌套的for循环会生成错误的数字?
- mysql - 从 phpmyadmin 导出数据库时没有结果
- javascript - 键入时 Ajax 脚本无法正常工作(keyup)