익스프레스의 단점
익스프레스는 폴더와 파일 구조에 제약이 없기 때문에 이를 사용자가 직접 생성해야 한다는 것이 익스프레스의 장점이자 단점이다.
또 익스프레스의 라우터를 구성하는 대부분의 요소가 미들웨어인데, 미들웨어는 단순히 (req, res, next) => {} 구조의 함수일 뿐이다.
따라서 각각의 역할과 제약을 사용자가 직접 부여해야 한다는 단점이 있다.
이를 해결한 노드 서버 프레임워크가 있다. 네스트는 타입스크립트와 객체 지향 프로그래밍을 적극적으로 활용한 프레임워크이다.
// 익스프레스 코드
router.post('/join', isNotLoggedIn, join);// 네스트 코드
@UseGuards(isNotLoggedIn)
@Post('join')
join(@Req() req: Request, @Res() res: Response) {
// req와 res를 사용한 회원 가입 로직
}NestJS 설치하기
npm i -g @nest/cli
npst new node-cat파일 생성 과정과 패키지 설치 과정이 다 끝나면 다음 명령어를 순차적으로 입력해 서버를 실행한다.
cd node-cat
npm run start