inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

소셜로그인 43:30

해결된 질문

502

똑같이썼는데안돼

작성한 질문수 14

0

 

질문.jpg

 

제 본인 프로젝트에 해당되는 내용입니다.

구글인증까지는 무난하게 되는데요.

1. 파란색이 Entity() 에서 뽑아온 Column명에 해당하는 변수로 알고 있습니다.



2. 구글인증을 통과한 후에 name, email, password를 req.user로 넣어서 보내주는 걸로 알고 있습니다.


 

<질문의도>

name, email, password를 req.user객체에 넣어서 받았으니,
req.user.name,
req.user.email,

req.user.password,

데이터를 꺼내서 개별적으로

컬럼에 저장되는 변수에

userName = req.user.name

userEmail = req.user.email

userPassword = req.user.password

위와 같이 저장되어야 하지 않아 생각해 봅니다.

 

 

그런데 아래 오류메시지의 경우

<property 'email' does not exist on type 'User & Pick<User, userEmail, userName, userPassword>

왜(why) req.user에서 userEmail, userName,

userPassword를 찾고 있는지 이해가 가지 않습니다.

----------------------------------------------------------

제가 지금 머릿속에서 뭔가 꼬인 것 같습니다.

답변 부탁드릴께요.

진도를 못나가고 있어요ㅠ


node.js tdd nodejs javascript express rest-api docker nestjs NestJS

답변 1

1

otter

안녕하세요 똑같이썼는데안돼님!

질문해 주신 내용에 대한 이해에 도움이 될 수 있도록 해당 코드의 로직을 되짚어 보도록 하겠습니다!

말씀해 주신 것처럼 파란 밑줄이 그어진 interfaceentity를 기준으로 하여 필요한 타입을 가져와 새로운 interface를 만들어 준 것입니다.

우리는 그렇게 만들어진 interface를 아래와 같은 코드를 통해 strategy를 거쳐 받아와지는 req의 타입에도 추가해 주었죠?

@Req() req: Request & IOAuthUser,

 

즉, req로 받아와지는 객체에도 user Entity에서 우리가 뽑아온 타입과 동일한 타입이 지정되어 있기 때문에 strategy 내부에서 return 해주는 객체의 key들을 우리가 pick 타입으로 뽑아온 이름(userEmail...)으로 수정해 주실 필요가 있어 보입니다!

이러한 내용을 짚어본 뒤 아래의 에러 메세지를 다시 살펴보면,

<property 'email' does not exist on type 'User & Pick<User, userEmail, userName, userPassword>

우리가 만들어준 pick 타입 내부에는 'email'이 존재하지 않는다. 라는 메세지를 나타내고 있음을 알 수 있습니다!

 

학습자료로 제공된 노션의 Section 9 => 소셜 로그인 자료를 살펴보시면 이해에 도움이 되리라 생각됩니다!

감사합니다 :)

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

86

2

강의 전체 소스 코드를 받고싶습니다.

0

77

2

fontawesome 사용 문의

0

81

2

소스 코드 부탁드립니다~

0

87

2

깃 레포지터리 소스

0

87

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

74

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

89

3

강의 버전관련 문의입니다

0

104

2

Ubuntu 설치 관련

0

62

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

102

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

134

2

강의 전체 소스코드 받을수있을까요?

0

156

1

도커볼륨 마운트 관련

0

127

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

356

1

self-signed certificate in certificate chain 에러 발생

0

421

1

mongoose 설치 오류

0

143

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

286

2

08-06

0

180

3

구조랑 패턴 관련해서 질문

0

126

2

mydocker

0

129

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1