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

+ Recent posts