: JavaScript를 실행시키는 런타임 환경 /
NodeJS 전에는 JS 런타임이 Browser밖에 없었다
-> NodeJS의 등장으로 JS의 사용범위가 Backend까지 확장!
- 프로그래밍 언어 / 프레임워크가 아니다!!
- Single-Thread 기반
- 비동기 방식
- 이벤트 기반
- NodeJS !== Backend
: Backend에서만 NodeJS를 사용하는 것은 아님
(Babel같은 경우도 NodeJS를 사용함 -> 즉 Frontend에서도 사용)
- NodeJS 기반의 MVC 웹 애플리케이션 프레임 워크
- 서버를 구축하기 쉽게 틀을 제공
1) HTTP 요청 본문 파싱 (bodyParser 처리를 알아서 해줌)
2) 쿠키 파싱 (cookieParser 알아서 app.use)
3) 세션 관리
4) 데이터 타입을 토대로 한 적절한 응답 헤더 결정
등등
- Express를 시작하는 방법은 크게 2가지가 있다.
1) Express 구조 직접 설정
2) Express-generator 사용하기
( Express-generator 사용이 더 편리하다! )
[ Express 구조 직접 설정 ]
1) NodeJS 및 npm 설치
2)npm init
또는yarn init
: package.json 생성
3)npm install express --save
또는yarn add express --dev
: express 설치
(--save나 --dev처럼 의존성에 추가해야 나중에 npm install할 때 추가가 됨)
4) app.js 작성const express= require("express"); const app = express(); const port = 3000; /* /에 대한 get 요청 처리 */ app.get("/", (req, res) => { res.send("Hello World!"); }); /* PORT 열기 */ app.listen(port, ()=>{ console.log(`Listening Service at ${port}`); })
5)
node app.js
: app.js 실행
[ Express-generator 사용 ]
1) NodeJS 및 npm 설치
2)npm install express-generator -g
또는
yarn global add express-generator
: express-generator 설치
3)express [프로젝트 이름]
: express 프로젝트 생성
4)npm install
: 의존성 패키지 설치
5)npm start
또는yarn start
: 프로젝트 실행
(package.json에 script에 저장된 start가 실행되는 것)
[ Express 기본 구조 ]
├── package.json : npm 의존성 파일들을 관리하는 중심 파일 ├── bin │ └── www : 서버를 실행하는 스크립트 프로젝트에 할당되는 포트 변경 가능 ├── public : 각종 리소스들 포함 (이미지, CSS, JS등) │ ├── images │ ├── javascripts │ ├── stylesheets ├── routes : 페이지 라우팅과 관련된 파일 저장 │ ├── index.js : 라우팅의 중심 역할! (여기 기준으로 추가하면 됨) │ ├── users.js ├── views : jade, ejs등 템플릿 파일들을 모아둠 (웹 서버에서 사용, 앱은 사용 X) └── app.js : 프로젝트의 중심 / 미들웨어 관리가 이루어짐 / 라우팅의 시작점
*
npm install [Module Name] --save
: --save옵션을 지정해야 dependencies에 추가되어npm install
시 자동 설치