[개정3판] Node.js 교과서 - 75강. 프로젝트 구조 갖추기

_·2023년 11월 14일

NodeBird SNS 서비스

1. 기능: 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉

express-generator 대신 직접 구조를 갖춤
프런트엔드 코드보다 노드 라우터 중심으로 볼 것
관계형 데이터베이스 MySQL 선택

프로젝트 시작하기

1. nodebird 폴더를 만들고 package.json 파일 생성

노드 프로젝트의 기본

2. 시퀄라이즈 폴더 구조 생성

폴더 구조 설정

1. views(템플릿 엔진), routes(라우터), public(정적 파일), passport(패스포트) 폴더 생성

app.js와 .env 파일도 생성

패키지 설치와 nodemon

1. npm 패키지 설치 후 nodemon도 설치

nodemon은 서버 코드가 변경되었을 때 자동으로 서버를 재시작해줌
nodemon은 콘솔 명령어이기 때문에 글로벌로 설치

2. app.js

노드 서버의 핵심인 app.js 파일 작성
소스 코드는 https://github.com/zerocho/nodejs-book
.env도 같이 추가

라우터 생성

1. 소스 코드

https://github.com/ZeroCho/nodejs-book/tree/master/ch9/9.1/nodebird

routes/page.js: 템플릿 엔진을 렌더링하는 라우터
controllers/page.js: page.js에 해당하는 컨트롤러
views/layout.html: 프론트 엔드 화면 레이아웃(로그인/유저 정보 화면)
views/main.html: 메인 화면(게시글들이 보임)
views/profile.html: 프로필 화면(팔로잉 관계가 보임)
views/error.html: 에러 발생 시 에러가 표시될 화면
public/main.css: 화면 CSS

2. npm start로 서버 실행 후 http://localhost:8001 접속

컨트롤러와 서비스

컨트롤러는 라우터의 마지막에 위치하는 미들웨어로 응답을 보내는 역할
컨트롤러를 분리하면 좋은 점이 많음.

0개의 댓글