매일 한걸음씩 성장하기

Profile, Recruit 기능을 팀원과 나누어서 작업했습니다.

그리고 우리에게 필요한 middleware를 구현하여 서버에 추가했습니다.

 

 

오늘은 어떻게 프로젝트에 기여했나요?

Bare Minimum

▷ route 세팅

- controller 하위 폴더 생성하기

- 한 요청당 하나의 파일로 만들기

- router 연결하기

const profileRouter = express.Router();

// 프로필 정보 조회
profileRouter.get('/profile', controller.getProfile);
// 프로필 정보 저장/수정
profileRouter.post('/profile', controller.postProfile);

export default profileRouter;

 

Login

▷ redirect 주소(endpoint) 수정하기

-`/loginloading`로 변경

클라이언트에서 인증 서버에서 받아오는 authorization code를 쉽게 관리하기 위해 따로 endpoint를 정해주었습니다.

 

Middleware

▷ authChecker 작성

서버에 요청할 때 요청한 유저가 로그인한 상태인지 확인하는 middleware를 구현하였습니다.

access token을 이용하여 유저의 아이디, 유저의 이메일을 확인한 후에 실제 요청으로 넘어갔습니다.

 

Profile

▷ 프로필 정보 조회 기능 구현

- `get /profile` 로직 구현

 

Recruit

▷ 게시글 상세 내용 조회 기능 구현

- `get /recruitBoard/:board_id` 로직 구현

-  recruits 테이블의 entity 보완

일부 필드에 대한 조건을 설정하고 필요한 필드를 추가했습니다.

@Column({
    length: 10000,
})
detailDesc!: string;

 

 

오늘의 프로젝트에서 힘든 점은 무엇인가요?

▷ foreign key 사용하기

TypeORM에서 `find ()`로 데이터를 검색하면 그 결과에 외래 키 필드가 포함되어 있지 않습니다. 따라서 외래 키 필드에 접근하려면 다른 방식을 사용해야 합니다.

`getRepository()`와 `relations`을 사용하면 외래 키 필드에 접근할 수 있습니다.

이때, `relations`에는 `@ManyToOne`에서 두번째 인자로 작성한 변수명을 넣어야 합니다.

import { getRepository } from 'typeorm';

let findComments = await getRepository(Recruit_comments).findAndCount({
    relations: ['recruits'],
});

 

 

내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?

▷ Profile: client와 연결하기

- 프로젝트 목록 데이터도 보내주기

- projects 테이블 스키마 디자인 보완하기

- 클라이언트의 요구사항에 맞춰서 로직 보완하기

 

▷ Recruit: 댓글 기능 구현하기

- 게시글 댓글 등록하기 

- 게시글 댓글 삭제하기

 

▷ 지금까지 구현한 기능을 포함하여 배포하기

 

'Code States > Project Record' 카테고리의 다른 글

[기록] Final Project_2021.05.17  (0) 2021.05.17
[기록] Final Project_2021.05.16  (0) 2021.05.16
[기록] Final Project_2021.05.14  (0) 2021.05.14
[기록] Final Project_2021.05.13  (0) 2021.05.13
[기록] Final Project_2021.05.11  (0) 2021.05.11

공유하기

facebook twitter kakaoTalk kakaostory naver band