인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

leejg님의 프로필 이미지
leejg

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

모달 만들기

user data 내 workspace 값 오류

작성

·

185

0

안녕하세요 제로초님!

 

저는 sleact backend 강좌를 먼저 수강한 뒤 제가 만든 server로 현재 frontend 강좌를 수강 중입니다

현 강의 내용 중 Workspaces 태그로 user data 내 Wokrspaces 값을 받아 처리하는 중 해당 값이 빈값이어서 오류가 발생합니다.

이제와서 보니 /api/users 요청을 통해 받은 값 중 Workspaces 값이 빈 값으로 들어오고 있었네요... DB 테이블엔 정상적으로 workspace 가 존재하고, 나머지 user data(id, email, nickname)은 정상적으로 응답합니다.  백엔드 코드 문제 같은데 어디에 질문을 드려야 할지 애매해서 우선 여기에 작성합니다 ㅠ

백엔드 코드 내 user controller 의 api/users 처리 부분은 

  @ApiCookieAuth('connect.sid')
  @ApiOperation({ summary: '내 정보 조회' })
  @Get()
  async getUsers(@User() user: Users) {
    return user || false;
}

이처럼 문제가 없어보이고, entities/Users 나 다른 부분을 찾아봐도 이게 어디서 꼬이는건지 감을 못잡겠어서 조언을 받고자 질문 드립니다...

 

제가 현재까지 작성한 코드 깃헙 주소는  https://github.com/ljg0230/slack_clone 입니다.

 

 

 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

passport strategy 부분에서 Workspace를 join 안 하신 것 아닌가요?

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

위 문제는 해결했지만.. 
QueryFailedError: Field 'createdAt' doesn't have a default value
라는 에러로 workspace 생성을 실패하는데 이 부분은 이해가 잘 안가서요ㅜ
my sql 의 my.cnf 파일에서 strict 모드를 해제하면 에러는 안나지만 각 테이블의 createAt이나 updatedAt 등의 컬럼에 값이 제대로 안들어갑니다!

제로초님의 nest 서버 코드로 실행해도 현상이 같아서요.. 근데 이상하게 제로초님의 express 서버 코드로 실행하면 에러없이 잘 작동하네요 혹시 짐작가시는 부분이 있으신가요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

workbench쪽에서 테이블 생성될 때 createdAt 컬럼에 default 옵션이 설정 안 된 것 같습니다. 그게 설정이 돼야 값을 자동으로 넣어줍니다. 이게 설정이 안 되더라도 sequelize는 값을 넣어주는데 typeorm은 안 넣어줍니다. orm 특성 차이입니다

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

답변 감사드립니다!

말씀해주신 workspace entity 코드는 현재 

@CreateDateColumn()
createdAt: Date;

@UpdateDateColumn()
updatedAt: Date;

이렇게 작성해두었고, 제로초님의 git 코드와 동일합니다. 혹시 여기에 default: true 옵션을 넣어야 한다는 말씀이신가요? 

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아뇨 디비 자체에 넣으셔야 합니다. 워크벤치 사용해서요

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

아...넵 답변 감사드립니다!

근데 이전에 진행할땐 이런 문제가 없었는데 한 번 디비 삭제 후 synchronize 해준 이후에 이런 문제가 계속 생기네요.. 코드는 그대로인데 테이블 생성 시 뭐가 날라간건지 ..

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

디비 스키마를 synchronize 를 통해 생성해서 말씀하신 default option들이 안들어있었던게 문제였네요....ㅎㅎ typeorm cli 의 schema:sync 명령어로 테이블을 생성하니 정상적으로 생성이 됩니다!

leejg님의 프로필 이미지
leejg

작성한 질문수

질문하기