express에서 사용할 수 있는 update 요청으로는 PUT과 PATCH가 있습니다.
위의 코드들은 PUT과 PATCH를 배우면서 사용한 예시 코드입니다.
언뜻 보기에도 큰 차이가 없죠.
replaceOne, updatdOne이라는 mongoose API도 크게 다를 게 없어 보입니다.
PUT과 PATCH는 데이터를 업데이트한다는 점에서는 일맥상통합니다.
하지만 그 방식이 다른 것이죠.
제 DB에 title이 HTML과 CSS인 두 개의 document가 있습니다.
HTML에 해당하는 주소에 content를 WTF으로 바꾸는 PUT 요청을 해보겠습니다.
결과는 위와 같습니다.
title이 HTML인 document를 찾아서 그 문서의 모든 내용을 content : WTF인 document로 바꿔버렸습니다.
이번엔 PATCH를 해보겠습니다.
똑같이 title : HTML인 doc를 찾아 content를 WTF로 바꿔주는 PATCH 요청을 보내보겠습니다.
PUT과 다르게 title은 HTML로 유지되고 content만 수정되었습니다.
각각의 요청에 replaceOne과 updateOne이라는 다른 mongoose API를 사용한 것에 그 차이점이 숨어있습니다.
PUT은 말 그래도 해당 데이터의 document를 새로 입력해준 document로 통으로 바꿔버리는 요청이고
PATCH는 filter로 찾은 데이터의 해당 부분만 수정해주는 요청입니다.
비유적으로 따지자면
핸드폰이 고장나서 AS를 갈 때
새로운 리퍼폰을 주는 것이 PUT
고장 난 부품만 갈아주는 것이 PATCH
'웹 > Javascript' 카테고리의 다른 글
React- class 활용 Styling (0) | 2022.01.15 |
---|---|
React - React, ReactDOM 시작하기 (0) | 2022.01.14 |
Nodejs Express route chaining (0) | 2022.01.03 |
javascript 코딩 테스트 - 로또의 최고 순위와 최저 순위(2021 Dev-Matching) (0) | 2021.12.21 |
javascript 코딩 테스트 - 키패드 누르기 (2020 카카오 인턴십) (0) | 2021.12.20 |