Node.js에서 서버를 쉽게 만들게 해주는 프레임 워크이다.
npm install express
npm install express --save
프레임 워크 설치는 설치할 디렉토리 내에서 위 명령어로 설치하면된다.
프로젝트 파일(package.json)이 있어야한다.
가장 기본적인 서버를 만드는 것부터 살펴보자
js파일을 하나 만들어 아래와 같은 내용을 넣어보자
const express = require('express') // express Module load
const app = express() // express Module Function
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
파일을 만들면 가장 먼저 해야될 것은 commonJS를 이용해
익스프레스 모듈을 로드 하는 것이다.
const express = require('express')
그다음 익스프레스 함수 실행값을 담아줄 변수를 선언하고
포트 번호도 따로 선언해준다.
const app = express()
const port = 3000
익스프레스 함수 실행값(express()
)은
익스프레스 모듈에서 내보내는 최상위 함수로
이를 이용해 익스프레스의 메소드를 실행할 수 있다.
이제 서버를 만들 준비는 끝났다
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.get
메소드는 HTTP GET
메소드를
지정된 경로로 라우팅하는 메소드이다.
라우팅이란, 특정 엔드포인트에 대한 클라이언트 요청에
애플리케이션이 응답하는 방법을 결정하는 것을 말한다.
익스프레스에서 라우팅을 하는 방법은 아래와 같다.
app.METHOD(PATH, HANDLER)
이 바로 위의 에제도 이 방법을 이용해 라우팅한 것이다.
키워드를 하나하나 살펴보면 다음과 같다.
app
은 express
의 인스턴스METHOD
는 HTTP
요청 메소드PATH
는 서버에서의 경로HANDLER
는 라우트가 일치할 때 실행되는 함수다시 예제로 돌아가 라우트가 일치할 때 실행된 함수안의
res.send('Hello World!')
는 HTTP 응답 메소드이다.
인자로는 HTTP body
가 들어가며
Buffer
, String
, Object
, Array
, Boolean
가 들어간다.
쉽게 생각해서 Node HTTP server에서 사용하는 response.end()
의
익스프레스 버전이라고 생각하면 된다.
이제 마지막으로 app.listen
이 남았는데
이는 Node HTTP server에서 사용하는 listen과 같은 역활을 한다.
전체적으로 살펴봤을때에 Node HTTP Server보다
코딩해야할 것들이 많이 줄어들고 간결해진다.