<옵셔널 체이닝 (?.)의 동작 방식:>
안전한 접근: trip.author?.name은 trip.author가 null 또는 undefined일 경우, name에 접근하지 않고 undefined를 반환합니다. 이로 인해 오류가 발생하지 않습니다.
기본값 설정: || '알 수 없음' 부분은 trip.author?.name이 undefined일 경우 '알 수 없음'을 반환합니다.
직접 접근 (trip.author.name)의 문제:
TypeError 발생: trip.author가 null 또는 undefined인 경우, trip.author.name에 접근하려고 하면 JavaScript는 null 또는 undefined에서 name 속성을 읽으려고 하므로 TypeError가 발생합니다.
요약:
옵셔널 체이닝을 사용하면 안전하게 속성에 접근할 수 있어 오류를 방지할 수 있습니다.
직접 접근은 trip.author가 존재하지 않을 경우 오류를 발생시킵니다.
<오류--- 무결성 오류>
1.npm 캐시 정리:
npm cache clean --force
2.node_modules 폴더와 package-lock.json 파일 삭제
3. 다시 인스톨
<400번대 오류>
400. 클라이언트 오류 (필드)
401. 토큰 없음
404. 서버경로 오류
<trips 배열의 구조>
trips 배열의 구조를 분석해 보면, 배열의 각 요소는 trip 객체로 이루어져 있습니다. trip 객체는 여러 가지 속성들을 포함하고 있으며, 대표적으로는 다음과 같은 구조를 가지고 있습니다:
코드 복사
[
{
author: {
email: "a@a.com", // 이메일 주소
name: "이메일", // 작성자 이름
gender: "MALE", // 성별
role: "USER" // 역할
},
authorId: 18, // 작성자 ID
createdAt: "2024-09-24T04:16:42.351Z", // 생성 날짜
id: 144, // trip ID
reservations: [], // 예약 목록 (현재는 비어 있음)
title: "경북대 -> 동대구역 택시 2024-09-24 13:16 동성 2인", // 제목
updatedAt: "2024-09-24T01:21:56.712Z", // 수정 날짜
},
{
author: {
email: "b@b.com",
name: "홍길동",
gender: "MALE",
role: "USER"
},
authorId: 5,
createdAt: "2024-09-23T09:49:54.391Z",
id: 140,
reservations: [],
title: "칠곡운암역 -> 동대구역 택시 2024-09-24 12:49 성별무관 4인 일정 모집중",
updatedAt: "2024-09-23T09:49:54.391Z"
},
...
]
배열 구조 설명:
author: 작성자에 대한 정보가 포함된 객체로, 이메일, 이름, 성별, 역할 등의 세부 정보가 들어 있습니다.
authorId: 작성자의 고유 ID.
createdAt: 트립이 생성된 날짜와 시간.
id: 해당 트립 객체의 고유 ID.
reservations: 예약 정보를 담고 있는 배열입니다. 현재는 빈 배열로 되어 있습니다.
title: 트립의 제목으로, 출발지와 도착지, 날짜, 시간 등의 정보가 포함된 문자열입니다.
updatedAt: 트립이 마지막으로 수정된 날짜와 시간.
이러한 구조에서 trips.map(trip => trip.author.email)과 같은 코드를 사용하면, trips 배열에서 각 trip 객체의 작성자 이메일만을 추출할 수 있습니다.