NPM(Node Packaged Modules)
Node.JS 에서 사용되는 모듈을 패키지로 모아놓은 것입니다.
초기 버전에서는 별로로 설치해줘야 했지만, 지금은 node 가 설치되면서 자동으로 npm 이 설치가 됩니다.
주로 사용되는 명령어
npm install 패키지명 : 패키지 파일을 찾아서 설치를 합니다.
npm list installed : 현재 설치되어 있는 패키지를 보여줍니다.
npm update 패키지명 : 설치된 패키지를 최신버전으로 업데이트 합니다.
Express.JS
Node.JS 에서 가장 많이 사용하는 웹 어플리케이션 프레임워크입니다.
쉽고 빠른 API 구성을 위한 HTTP 기능 및 미들웨어를 가지고 있습니다.
설치
$ node --version
$ npm --version
Express를 설치하기에 앞서 node와 npm 설치 유무를 확인합니다.
$ npm install express -g
npm을 명령어를 이용하여 Express를 설치합니다.
-g 옵션을 추가하면 글로벌(global)로 모듈을 설치한다는 의미입니다.
$ npm install -g express-generator
만약 Express 명령어를 찾을 수 없다고 나온다면, expresss-generator를 설치합니다.
$ express my-app
Express 설치를 완료하면 간단하게 위의 명령어를 통해 my-app 폴더를 생성하고 서버 구동에 필요한 파일들이 설치됩니다.
구조
package.json : 프로그램 이름, 버전 등 노드 프로그램의 정보를 기술합니다. 또한 필요에 따라 다양한 모듈과 함께 사용하는데 이러한 모듈들의 목록을 package.json에 나열합니다. npm은 이 정보를 참고하여 필요한 모듈을 모두 설치할 수 있는 것입니다.
bin/www : 서버 구동을 위한 코드가 기록되어 있습니다. 익스프레스 서버 설정 코드가 기록된 app.js 파일을 가져와 노드의 HTTP 객체와 연동하는 작업이 이루어집니다.
app.js : bin/www 에서 사용되는 이 파일은 익스프레스 설정 파일이 담겨있는 핵심 코드입니다. 아래는 주요 설정 코드입니다.
morgan : 클라이언트의 HTTP 요청 정보를 로깅하기 위한 모듈
body-parser : 클라이언트의 HTTP 요청 중 POST 요청의 바디 데이터에 접근하기 위한 모듈
cookie-parser : 접속한 클라이언트의 쿠키 정보에 접근하기 위한 모듈
express.static() : 정적 파일 호스팅을 위한 경로 설정
app.use('/', routes) : 라우팅 설정. 세부 라우팅은 /routes 폴더에 구현됨
/routes : 라우팅을 위한 폴더입니다. 라우팅 리소스 별로 모듈을 만들어 라우팅 로직을 각 파일에 구현합니다.
/views/index.jade : 템플릿 파일인 제이드(Jade) 파일입니다. 이 파일을 제이드 엔진을 통해 HTML 코드로 변환됩니다. 라우팅 로직 중 render() 함수에서 파라미터로 이 파일을 사용합니다.
/public : 정적 파일을 위한 폴더로서 자바스크립트 파일, 이미지 파일, 스타일시트 등을 포함합니다. HTML 파일에서 해당 파일을 호출하면 내려주는 역할을 합니다.
프로젝트 폴더 생성
$ express my-app
express 명령어를 사용하여 my-app 프로젝트 폴더를 생성합니다.
/my-app$ npm install
package.json에 기술되어 있는 dependencies 값을 이용하여 의존성 모듈을 설치합니다. 다운로드 된 모듈들은 node_modules 폴더에 저장됩니다.
/my-app$ npm start
별도의 설정이 없다면 /bin/www 에 기술되어 있는 3000번 포트를 통해 웹 페이지를 구동합니다.
'Node.js' 카테고리의 다른 글
Jade 이해하기 (0) | 2017.02.02 |
---|---|
HTTP 요청, 응답 이해하기(Express 프로젝트 기준) (0) | 2017.02.01 |
socket.io server 만들기 (0) | 2016.11.25 |