브렌쏭의 Veritas_Garage
나는 나는 무얼 놓쳤나 #20220411 본문
유저 테이블을 잘 구성해주셨습니다! 다만, user를 find하는 api의 엔드포인트가 잘못 지정되어 있습니다! api의 엔드포인트는 항상 주의해주시길 바랍니다~! 또한, user를 delete하는 api의 경우 현재 resolver에서 리턴값으로 user 객체를 보내주고 있는데 삭제된 데이터의 값을 보내줄 수는 없겠죠? softDelete를 사용했을 때와 같이 return 값을 다르게 지정해주어야 에러가 발생하지 않을 것 같습니다! service 부분에서는 return 값으로 result.affected를 보내주고 있으나, result라는 객체는 softDelete된 객체가 아니기에 null이 리턴되고 있습니다! 해당 부분도 반드시 확인 후 해결 방법을 숙지하시길 바랍니다! 고생하셨습니다~!
- user를 find하는 api의 엔드포인트가 잘못 지정되어 있습니다! api의 엔드포인트는 항상 주의해주시길 바랍니다
- user를 delete하는 api의 경우 현재 resolver에서 리턴값으로 user 객체를 보내주고 있는데 삭제된 데이터의 값을 보내줄 수는 없죠
softDelete를 사용했을 때와 같이 return 값을 다르게 지정해주어야 에러가 발생하지 않을 것 같습니다 - service 부분에서는 return 값으로 result.affected를 보내주고 있으나, result라는 객체는 softDelete된 객체가 아니기에 null이 리턴되고 있습니다
1. 실수 만발
user 대신에 복붙하다가 카테고리라는 이름이 떡하니 박혀있었다. 으악 젠장
2, 3. 고민 중
둘 다 비슷한 맥락의 문제인거 같다. 리턴값을 지정해줘야할 것 같다. 근데 어떻게 지정할까?
@UseGuards(GqlAuthEmailGuard)
@Mutation(() => User)
async deleteUser(@ContextUser() contextUser: any) {
const email = contextUser.email;
await this.userService.delete({
email,
});
const result = 'Deleted...';
return result;
}
직접 리턴 값을 문자열로 바꿔봤으나 딱히 소용은 없었다.
해결
@UseGuards(GqlAuthEmailGuard)
@Mutation(() => String) // 여기에서 리턴되어 프론트로 보내줄 값의 형식을 지정해줘야한다
async deleteUser(@ContextUser() contextUser: any) {
const email = contextUser.email;
await this.userService.delete({
email,
});
const result = 'Deleted...';
return result;
}
'[Project_만들다] > [Project_문제해결]' 카테고리의 다른 글
MySQL && ELK #has not received any packets from the server (0) | 2022.04.24 |
---|---|
2020420, 문제해결 (0) | 2022.04.20 |
Cannot return null.... (0) | 2022.04.18 |
Doesn't have default value.. (0) | 2022.04.11 |
Incorrect table definition; (0) | 2022.04.11 |
Cannot determine a GraphQL input type (0) | 2022.04.10 |
Comments