용기내 Project READ ME

Ⅰ. 프로젝트 전체 구조

프로젝트 전체 구조

01. server.js, package.json, package-lock.json

┣ 📜package-lock.json
┣ 📜package.json
┣ 📜server.js

(1) package.json

package.json에는 프로젝트에 사용한 모듈 정보가 포함되어 있다. npm install을 통해 모듈을 설치할 수 있다.

(2) server.js

server.js는 entry point이다. node server.js를 통해 서버를 작동하고 http://localhost:3000으로 접속한다.

다만, 본 프로젝트 개발 중에는 서버 실행 시 서버의 무중단 서비스를 가능하게 해주는 pm2라는 모듈을 사용했다. pm2 start server.js --watch --ignore-watch="uploads/*" (이 명령어가 오류가 난다면 pm2 start server.js --watch --ignore-watch="uploads/" ) 명령어를 사용하여 서버를 실행했다. 위 명령어로 실행시 이용자의 파일 업로드에 의한 uploads파일 변화를 감지하지 않기 떄문에 세션이 유지된다.

02. models

📦models
┣ 📜Challenge.js
┣ 📜Comment.js
┣ 📜Review.js
┗ 📜User.js

MongoDB와 연결하고, schema를 생성한다.
본 프로젝트에서 사용한 스키마는 위와 같다. Challenge.js는 challengeschema를, Comment.js는 commentschema를, Review.js는 reviewschema를, 그리고 User.js는 schema(유저 데이터가 들어감)를 생성한다.

03. public

📦public
┣ 📂css
┃ ┣ 📜challenge.css
┃ ┣ 📜chall_select.css
┃ ┣ 📜create.css
┃ ┣ 📜detail.css
┃ ┣ 📜envinfo.css
┃ ┣ 📜login.css
┃ ┣ 📜main.css
┃ ┣ 📜mainpage.css
┃ ┣ 📜map.css
┃ ┣ 📜mypage.css
┃ ┗ 📜review.css
┣ 📂js
┃ ┣ 📜challenge.js
┃ ┣ 📜map.js
┃ ┗ 📜review.js
┣ 📜banner1.png
┣ 📜banner2.png
┣ 📜banner3.png
┗ 📜favicon.ico

프로젝트에서 활용한 static 자원들이다.

04. router

📦router
┣ 📜account.js
┣ 📜challenge.js
┣ 📜envinfo.js
┣ 📜main.js
┣ 📜mypage.js
┣ 📜place.js
┗ 📜review.js

라우터를 분리해서 구성했다. server.js에 아래와 같이 명시하여 라우터의 구조를 잡았다.

app.use("/place", require('./router/place.js'));
app.use("/account", require('./router/account.js'));
app.use("/review", require('./router/review.js'));
app.use("/challenge", require('./router/challenge.js'));
app.use("/mypage", require('./router/mypage.js'));
app.use("/envinfo", require('./router/envinfo.js'));

05. uploads

📦uploads
┗ 📜yonginae_default.jpg

사용자가 업로드하는 media자원들이 저장되는 위치이다. yonginae_default.jpg는 사용자가 리뷰 작성 시 사진을 업로드 하지 않았을 때 기본으로 첨부되는 이미지 파일이다.

06. views

📦views
┣ 📂account
┃ ┣ 📜login.ejs
┃ ┗ 📜signup.ejs
┣ 📂challenge
┃ ┣ 📜challenge.ejs
┃ ┗ 📜review_select.ejs
┣ 📂envinfo
┃ ┗ 📜envinfo.ejs
┣ 📂mypage
┃ ┣ 📜mychallenge.ejs
┃ ┣ 📜mypage.ejs
┃ ┗ 📜myreview.ejs
┣ 📂place
┃ ┣ 📜place.ejs
┃ ┣ 📜place_create.ejs
┃ ┗ 📜place_review.ejs
┣ 📂review
┃ ┣ 📜create.ejs
┃ ┣ 📜detail.ejs
┃ ┣ 📜edit.ejs
┃ ┗ 📜review.ejs
┣ 📜header.ejs
┣ 📜index.ejs
┗ 📜nav.ejs

본 프로젝트에서는 template을 ejs로 사용하여 동적 페이지를 만들었다.

Ⅱ. 사용한 모듈

00. pacakge.json

package.json 내의 dependencies

좋은 웹페이지 즐겨찾기