강의

멘토링

커뮤니티

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

Jack님의 프로필 이미지
Jack

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

질문입니다!

해결된 질문

작성

·

138

1

1.

post /api/workspaces'

이 api로 요청될 경우 워크스페이스를 만드는 api잖아요?

이때 workspace controller을 보면 createworkspace에서 body.workspace와 url, id가 보이는데요

 @Post()
  async createWorkspace(@User() userUsers, @Body() bodyCreateWorkspaceDto) {
    return this.workspacesService.createWorkspace(
      body.workspace,
      body.url,
      user.id,
    );
 }

이값은 프론트에서 받아서 

async createWorkspace(namestringurlstringmyIdnumber) {
.....
}

workspace.service의 createWorkspace로 넘겨주는 것인가요 아니면 

workspace.service의 createworksapce에서 리턴된 값을 workspace controller에서 받아오는 것인가요?..

2. 강사님 강의중 intercepter를 쓰는게 나오는데요 깃헙에 있는 소스코드에는 인터셉터가 없더라구요?

이것은 사용안해도 되는 선택적인 것이어서 소스코드에 없는것인지 궁금합니다

3. 

  const channelMember = new ChannelMembers();
    channelMember.ChannelId = workspace.Channels.find(
      (v=> v.name === '일반',
    ).id;

workspace에는 chnnels라는 컬럼이 없는데 어떻게 적용이 되는거죠?

channels 테이블에 name컬럼이 일반인 데이터에 속해있는 workspaceId를 보고 workspaceId에 관계되어 있는 workspace테이블의 workspaceId를 channleMember의 channelid에 넣는것인가요?

제가 제대로 이해했는지 모르겠네요...

답변 1

1

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

1.  프론트 -> 컨트롤러 -> 서비스 구조입니다.

프론트에서 body로 넘겨준 값이 컨트롤러의 body로 갑니다.

2. 컨트롤러간 공통된 로직이 있을 때 interceptor를 쓰면 되는데, 강좌 내용에서는 없어서 소스에서는 빠졌습니다.

3. Channels는 typeorm이 생성해주는 속성입니다. 저희가 1:1, 1:n, n:m 등의 관계를 typeorm에서  설정해놨기 때문에 typeorm은 저런 속성을 생성해줄 수 있습니다.

channel 테이블에는 WorkspaceId 컬럼이 있는데, 이 컬럼이 해당 workspace의 id인 채널들을 합쳐서 Channels 배열로 만드는 겁니다.

Jack님의 프로필 이미지
Jack

작성한 질문수

질문하기