Request body 객체 구조분해할당
const name = req.body.name
const email = req.body.email
const password = req.body.password
보다는
**const { name, email, password } = req.body**
객체 할당
변수에서 객체 속성을 추출하고 해당 값을
변수에 할당
= "객체 분해(destructuring)" 사용
객체 할당
-> 주로 객체의 속성을 더 간편하게 변수에 할당하고 사용하기 위해 사용
JavaScript와 TypeScript에서 객체 할당을 수행하는 방법의 간단한 예제
// 객체를 생성
const person = {
firstName: "John",
lastName: "Doe",
age: 30,
};
// 객체 분해 -> 객체 속성을 변수에 할당
const { firstName, lastName, age } = person;
// 이제 firstName, lastName, age 변수에는 각각 객체의 속성 값이 할당됩니다.
console.log(firstName); // "John"
console.log(lastName); // "Doe"
console.log(age); // 30
위의 코드에서
const { firstName, lastName, age } = person; 부분은
person 객체의 firstName, lastName, age 속성을 추출하여
새로운 변수에 할당하는 객체 할당을 수행
이를 통해 변수를 사용하여 객체의 속성에 쉽게 액세스할 수 있습니다.
객체 할당은
객체에서 필요한 데이터를 추출하고 다른 변수에 할당하는 간편한 방법을 제공하므로
코드를 더 읽기 쉽게 만들어줍니다.
const { id } --> 객체 분해(destructuring)를 사용하여 id라는 변수를 선언
jwt.verify 함수에서 반환되는 객체의 id 속성을 추출하여 저장
jwt.verify(token, process.env.TYPEORM_JWT) --> JWT를 검증하는 함수 호출
--> token은 검증할 JWT 토큰을 나타내고,
--> process.env.TYPEORM_JWT는 환경 변수에서 가져온 JWT 시크릿 키(key)
JWT를 검증하려면 이 시크릿 키가 필요
JWT 검증이 성공하면
jwt.verify 함수는 토큰의 내용을 확인, 해당 내용을 포함하는 객체를 반환
그 중에서 id라는 속성을 위에서 선언한 변수에 할당
이렇게 하면 JWT 검증을 통해 추출한 id 변수에는
JWT 페이로드에서 추출한 사용자 ID 또는 식별자가 저장,
이를 이용하여 사용자를 인증하거나 권한 부여 등의 작업을 수행할 수 있습니다.
"객체 할당"= "구조 분해 할당" = "객체 분해 할당"
객체의 속성을 변수에 할당하는 프로세스
주로 객체의 속성을 추출하여 새로운 변수에 할당하거나 사용하는 목적
이를 통해 코드를 간결하고 가독성 좋게 작성할 수 있으며, 필요한 데이터를 손쉽게 접근할 수 있습니다.
예를 들어, 객체 person의 속성을 추출하여 변수에 할당
const person = {
firstName: "John",
lastName: "Doe",
age: 30,
};
// 객체 할당, 구조 분해 할당-> 객체 속성을 변수에 할당
const { firstName, lastName, age } = person;
// 이제 firstName, lastName, age 변수에는 각각 객체의 속성 값이 할당
console.log(firstName); // "John"
console.log(lastName); // "Doe"
console.log(age); // 30
'Wecode - Project 2 (부트캠프) > 독학' 카테고리의 다른 글
query 문 ** (0) | 2023.10.06 |
---|---|
깃허브 사용법 (0) | 2023.10.06 |
layered pattern 코드 분리 연습을 위한 clone, 새로운 github 저장소 연결 (0) | 2023.10.05 |
깃허브 merge conflict 충돌 해결법 (0) | 2023.10.05 |
layered pattern에서 가져올 때; module, export/import (0) | 2023.10.04 |