Node.js Express

Express의 기반이 되는 Connect는 다양한 유틸리티를 제공하는 미들웨어 패키지입니다.
이 Connect위에 보편적인 웹서버의 기능이 가능하도록 프레임워크를 만든 것이 Express입니다.

주요 기능으로,

  • 템플릿 엔진과의 연계를 통해 View를 독립시켜 빠른 개발에 도움을 줍니다.
  • 훌륭한 라우팅 기능을 제공하여 HTTP 서버 구현 부담을 덜어줍니다.
  • 기본 웹 어플리케이션 구조를 제공하기 때문에 편리합니다.

Express의 설치

npm install -g express

g (global) 플래그가 들어간 이유는 Express 프로젝트를 생성할때 기초 구조를 기반으로 생성할 수 있도록 하기 위함 입니다. 이 기본 프로젝트를 바탕으로 개발을 진행하게 되면 말 그대로 빠른 웹서버 개발이 가능케 됩니다.

새 프로젝트 생성은 프로젝트 생성을 원하는 폴더에 들어간 뒤

express
npm install

을 입력하면 됩니다.

express 명령은 해당 폴더에 기본 프로젝트를 복사하겠다는 의미이며,
npm install 명령은 Express가 종속성을 가진 jade라는 템플릿 엔진을 다운받겠다는 의미 입니다. 추후 다른 템플릿 엔진 중에 원하는 것이 있다면 설정을 변경하여 얼마든지 바꿀 수 있습니다.

Express 프로젝트 구조

Express 프로젝트는  다음 구조로 구성되어 있습니다.

  • app.js
  • package.json
  • /public
  • /node_modules
  • /routes
  • /views

app.js파일은 Starting Point로써 가장 중요한 로직을 담고 있습니다.
프로젝트를 실행할 땐,

node app.js&

명령으로 실행하게 됩니다. 백그라운드에서 실행시키기 위해서 &를 붙혀줍니다.

package.json파일은 어플리케이션의 이름, 버전, 종속성에 대한 설명을 기재하는 파일입니다. 프로젝트를 공유하게 될 때 효용성이 큰 파일입니다.

/node_modules는 NPM으로 설치한 패키지들이 저장된 폴더입니다.

/public은 js, css파일이나 이미지 파일처럼 정적 컨텐츠를 담아두는 폴더입니다. 클라이언트가 요청한 파일이 동적으로 Render되는 View가 아닌 경우, /public에서 검색하게 되며 파일 그대로 전달해주게 됩니다. Apache의 /public_html과 같다고 생각하면 됩니다.

/routes는 라우팅, 템플릿 Render와 관련한 설정이 위치합니다.

/views는 템플릿 엔진이 템플릿 파일을 참조하는 경로입니다. 기본 템플릿 엔진은 jade이므로 jade 문법으로 작성된 파일들이 위치하며 동적 View를 라우팅시, 이 템플릿을 가지고 렌더링하게 됩니다.

구체적인 사용방법은,

을 참고하시기 바랍니다.