인프런 커뮤니티 질문&답변

MJ90님의 프로필 이미지

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

모든 Route 기본 Private로 만들고 IsPublic Annotation 작업하기

모든 Route 기본 Private로 만들고 IsPublic Annotation 작업하기 강의부분 질문드립니다

24.03.06 19:52 작성

·

241

·

수정됨

1

안녕하세요 너무 잘듣고있습니다

 

'모든 Route 기본 Private로 만들고 IsPublic Annotation 작업하기' 수업듣는 중 질문이있어 글남깁니다.

POSTMAN에서 DELETE기능을 눌렀을때 에러가 발생합니다

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

[터미널에 나온 에러 내용]

[REQ] GET /posts?order__createdAt=DESC&take=5 2024. 3. 6. 오후 7:44:07

[REQ] DELETE /posts/122 2024. 3. 6. 오후 7:44:32

[Nest] 9576 - 2024. 03. 06. 오후 7:44:32 ERROR [ExceptionsHandler] update or delete on table "posts_model" violates foreign key constraint "FK_40cd89c6655ec7b102842feacab" on table "image_model"

QueryFailedError: update or delete on table "posts_model" violates foreign key constraint "FK_40cd89c6655ec7b102842feacab" on table "image_model"

at PostgresQueryRunner.query (C:\Users\manjin han\OneDrive\바탕 화면\flutter 폴더 및 파일\cf_sns\src\driver\postgres\PostgresQueryRunner.ts:331:19)

at processTicksAndRejections (node:internal/process/task_queues:95:5)

at DeleteQueryBuilder.execute (C:\Users\manjin han\OneDrive\바탕 화면\flutter 폴더 및 파일\cf_sns\src\query-builder\DeleteQueryBuilder.ts:77:33)

at PostsService.deletePost (C:\Users\manjin han\OneDrive\바탕 화면\flutter 폴더 및 파일\cf_sns\src\posts\posts.service.ts:332:7)

 

[postman 에러 내용]

{
    "statusCode": 500,
    "message": "Internal server error"
}

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

강의상

terminal창에, 이렇게 화면이 나와야하는데

KakaoTalk_20240306_194531844.png

해당화면처럼 에러가 나오네요

KakaoTalk_20240306_194609412.png

몇일 고민해도 안되서 질문 드립니다

답변 1

1

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 03. 08. 12:02

안녕하세요!

ImageModel 연동이 존재하는 Post를 삭제하려고 하신게 맞을까요?

Foreign Key를 다른곳에서 레퍼런스 하고 있을경우 삭제하려고 할때 에러를 던지는게 기본값입니다.

이럴경우 두가지 방법이 있습니다. 해당 레퍼런스 데이터를 먼저 삭제하고 (이경우 ImageModel) 원래 지우려던 데이터를 삭제합니다.

또는 Relation 옵션에 cascade: true를 입력 할 수 있습니다.

그럼 연동된 테이블의 데이터가 함께 삭제됩니다.

감사합니다!

MJ90님의 프로필 이미지
MJ90
질문자

2024. 03. 09. 11:47

해결되었습니다!!! 감사합니다 ㅠㅜ

MJ90님의 프로필 이미지

작성한 질문수

질문하기