Improving Exception Handling in NestJS GraphQL Service
Given a typical nestjs graphql scenario like
since things like exception handling and such is not present, what steps could be taken to improve this
// users.resolver.ts
@Resolver(() => User)
export class UsersResolver {
constructor(
private usersService: UsersService,
) {}
@Query(() => User)
async user(@Args('id', { type: () => Int }) id: number) {
return this.userService.findOneById(id);
}
}// users.resolver.ts
@Resolver(() => User)
export class UsersResolver {
constructor(
private usersService: UsersService,
) {}
@Query(() => User)
async user(@Args('id', { type: () => Int }) id: number) {
return this.userService.findOneById(id);
}
}//users.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UsersService {
constructor(
@InjectRepository(User)
private usersRepository: Repository<User>,
) {}
findAll(): Promise<User[]> {
return this.usersRepository.find();
}
findOneById(id: number): Promise<User | null> {
return this.usersRepository.findOneBy({ id });
}
async remove(id: number): Promise<void> {
await this.usersRepository.delete(id);
}
}//users.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UsersService {
constructor(
@InjectRepository(User)
private usersRepository: Repository<User>,
) {}
findAll(): Promise<User[]> {
return this.usersRepository.find();
}
findOneById(id: number): Promise<User | null> {
return this.usersRepository.findOneBy({ id });
}
async remove(id: number): Promise<void> {
await this.usersRepository.delete(id);
}
}since things like exception handling and such is not present, what steps could be taken to improve this
