NPM으로 모듈 설치
NPM
- NodeJS 모듈을 공유하고 다운받는 저장소
- CLI (명령줄 인터페이스)로 간편하게 모듈 관리
- 의존성 관리
- A 모듈이 B 모듈을 사용할 때 A모듈은 B모듈에 의존성이 있다고 말함
- package.json 파일로 프로젝트 의존성 관리
npm init 명령어
- NodeJS 프로젝트를 시작하기 위한 명령어
- package.json 파일을 생성
- 프로젝트의 이름, 버전, 개발자 정보 등의 메타데이터
- NPM모듈의 의존성 정보 등을 담고 있음
- 새로운 폴더 생성 및 실행
- package.json
{
"name": "my_module_test",
"version": "1.0.0",
"description": "나의 모듈 시험",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "ISC"
}
- 엔트리 포인트 : “main”: “index.js”,
- “scripts”: {
“start”: “node index.js”
},
=> npm run start 명령으로 실행
Express.js 모듈 사용
NPM 패키지 검색
- https://www.npmjs.com/
- express
- > npm install –save express
- package.json 에 의존성 정보를 저장하려면 –save 옵션과 함께 실행
- express에 의존성 있는 모든 모듈 설치됨
- 고성능 웹 프레임워크
- 프로그래머가 작성한 함수를 실행해 HTTP요청에 대한 HTTP응답을 프로그래머가 원하는 대로 만들어 HTTP클라이언트에게 응답할 수 있음
- 요청한 URL이나 HTTP메서드에 따라 원하는 함수를 실행시켜 주는 라우팅 기능
- HTML의 내용 일부분을 변수에 저장된 값으로 치환해 동적인 HTML을 만들어 응답하는 뷰 템플릿 엔진도 가지고 있다
- 미들웨어로 기능 확장
require 함수로 외부 모듈 이용하기
- require 함수 모듈명을 인자로 실행
- 파일명을 전달할 때와 마찬가지로 해당 모듈을 반환
var express = require('express');
var app = express();
app.listen(3000, function() {
console.log("3000 포트로 웹서버 실행!");
});
- my_module_test> npm run start
- ctrl + C 키로 종료
미들웨어 콜백함수의 인수
- HTTP 요청 -> 미들웨어1 -> 미들웨어2 -> 미들웨어… -> HTTP 응답
- Request 객체
- Response 객체
- 브라우저에 전송할 HTTP응답을 어떻게 만들지에 대한 정보를 설정
- next 함수
- 이전 미들웨어에서 다음 미들웨어도 실행해야 한다고 알려주는 함수
app.use(function(req, res, next) {
res.send('OK');
})
- 디버깅
- JavaScript Debug Terminal 로 실행
- 디버그 터미널에서 my_module_test> npm run start 수행
- break point