본문 바로가기

Backend/Node.js

Node.js Express 설치 (express-generator)

Express.js는 Node.js를 기반으로 하는 웹 프레임워크에요.

해외는 잘 모르겠지만 국내에서는 Node로 개발했다고 하면, 대부분 Express 구조로 짜여있다고 봐도 무방해요.

많이들 Spring Framework와 Node를 비교하는데 사실 Spring은 Express와 비교하는게 맞아요.

Node는 프레임워크가 아니라 소프트웨어 플랫폼이라고 봐야하기 때문이죠.

이 글에서는 Express를 설치하고 제대로 동작하는지 테스트까지 해보려고 해요.

 

기본적으로 Node.js가 설치되어야 하기 때문에 설치되어있지 않다면 먼저 노드를 설치해주세요.

https://gofnrk.tistory.com/32

 

NVM 설치, Node 버전 관리 (Windows / Mac)

NVM이란? (Node Version Manager) 말그대로 노드 버전 관리자에요. 마땅히 설명할게 없네요. 어떠한 도구로 개발하다보면 버전을 교체하거나 여러 버전을 관리해야 하는 경우가 생겨요. node도 마찬가지에요. nvm..

gofnrk.tistory.com

1. Express Generator 설치

npm install express-generator -g

 

전 이미 설치가 되어있어서 업데이트 형태로 패키지가 추가되었네요.

 

 

express -h

 

설치한 후에 제대로 설치가 되었는지 확인해볼게요.

express 커맨드를 이용해서 이제 우리는 express 골격을 손쉽게 생성할 수 있습니다.

 

2. Express 애플리케이션 설치

express hongtorial

 

아무 옵션 주지 않고 express를 설치할게요.

설치하고자 하는 경로에서 express {프로젝트명} 커멘드로 생성하겠습니다.

생성 후에 빨간색 박스친 부분을 이어서 그대로 쳐줄거에요.

 

3. Express 실행

위의 빨간색 박스친 명령어를 그대로 쳐주겠습니다.

앱 실행 시에 SET DEBUG=hongtorial:*은 애플리케이션을 디버깅할 때 사용해요.

모든 내부 로그를 확인할 수 있어서 개발할 때 유용하게 쓰시면 되요.

지금은 단순히 실행하고 테스트만 해볼거라 npm start만 쳐서 실행볼거에요.

 

4. 테스트

express-generator로 생성한 애플리케이션은 기본 포트가 3000이에요.

http://localhost:3000를 브라우저에 쳐서 제대로 동작하는지 확인해볼게요.

 

5. Express 구조

 

app.js

Express 애플리케이션의 설정을 담당하고 있다고 보면 되요.

 

./bin/www

실질적으로 애플리케이션을 실행시키는 파일이에요.

app.js의 설정을 가져와서 포트를 세팅하고 http 모듈로 서버를 생성해요.

입문하신 분들에게는 포트를 수정할 수 있다는 것만 알고 넘어가셔도 되요.

 

package.json, package-lock.json

노드 모듈을 관리하는 파일이에요. npm install 커맨드를 실행하면 package.json에 명시된 모듈들이 node_modules 폴더에 생성이 되요. 그리고 node_modules의 정보가 package-lock.json에 입력이 되요.

 

node_modules

노드 모듈이 설치된 경로에요.

 

public

정적 컨텐츠 파일을 모아둔 경로에요. app.js 파일에서 설정을 해요.

기본적인 설정은 '/static'으로 되어있지 않을거에요.

 

app.use('/static', express.static(path.join(__dirname, 'public')));

 

routes

라우팅을 모아둔 경로구요. app.js 파일에서 설정을 해요.

 

app.use('/', require('./routes/index'));
app.use('/users', require('./routes/users'));

 

views

어느 웹 프레임워크와 마찬가지로, Node 역시 뷰 템플릿 엔진을 사용할 수 있어요.

views 폴더는 이런 뷰 템플릿 파일을 모아둔 경로에요. 역시, app.js 파일에서 설정할 수 있어요..

default는 jade구요. express -h 커맨드를 실행하고 -v 옵션 설명을 보면 어떤 엔진을 사용할 수 있는지 알 수 있어요.

보통은 ejs를 제일 많이 쓰는 것 같더라구요.

 

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');