Express 는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다.
Node.js 가 이미 설치되어있다고 가정한 상태에서 작업 디렉토리를 만든 후 진행한다. (Node.js 는 nvm 으로 설치 권장)
$ mkdir myapp
$ cd myapp
그 후 npm init
명령어를 통해 애플리케이션에 대한 package.json 파일 생성.
이제 myapp 디렉토리에 Express 설치 후 종속 항목 목록에 저장.
$ npm install express --save
#--save 옵션은 package.json 에 종속시키는 옵션인데 npm v5 이상부터는 --save옵션이 default값.
$ npm install express-generator
명령어로 express 기본 구조를 자동으로 만들 수 도 있다..
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.pug
├── index.pug
└── layout.pug
라우팅은 URI 및 특정 HTTP 메소드 (GET, POST, PUT, DELETE 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는것을 말한다.
각 라우트는 하나이상의 핸들러 함수를 가질 수 있고 이러한 함수는 라우트가 일치할때 실행된다. 라우트 정의에는 다음과 같은 구조가 필요하다.
app.METHOD(PATH, HANDLER)
이미지, CSS, JS 파일과같은 정적 파일을 제공하려면 Express의 기본 제공 미들웨어 함수인 express.static을 사용하면 된다.
app.use(express.static('public'));
public 디렉토리 아래에 포함된 정적 파일들을 제공할 수 있다.
여러개의 정적 디렉토리를 이용하려면 express.static 함수를 여러번 호출하면 된다.
app.use(express.static('public'));
app.use(express.static('files'));
가상의 파일 경로로 제공하려면 추가해주고싶은 가상의 경로를 아래와 같이 표시해주면 된다.
app.use('/statics', epxress.static('public'));
참고 : Express 공식 Doc