일단 시작해보는 블로그

[NodeJS] Express.js에 대하여 본문

개발/Node.js

[NodeJS] Express.js에 대하여

Selina Park 2019. 8. 16. 16:35

NodeJS의 웹 프레임워크를 사용하면 간편하게 웹서버를 구축할 수 있다.

웹프레임워크 종류 : Express, Koa, Hapi 등

 

이번 포스트에서는 express에 대하여 다룰 것이다.

 

[**전체 코드 미리보기**]

// express라이브러리를 설치하는 과정.
// 현재 프로젝트로 이동하여( cd [프로젝트 경로] ) express 라이브러리를 설치한다.

npm install express --save
var express = require('express');
var app = express();

var server = app.listen(3000, function(){
    console.log("Express server has started on port 3000")
});

 

익스프레스 주요 개념

 - Application

 - Request

 - Response

 - Routing

 

Application

const express = require('express'); 
const app = express();

불러온 익스프레스 객체에는 하나의 함수가 할당된다. 그러니까 express안에 지금 하나의 함수가 할당되어있다는 것.

이 함수를 실행하면 익스프레스 객체가 생성된다. 익스프레스 클래스를 이용해서 익스프레스 객체를 만든다고 생각하면 된다.

이것을 익스프레스 어플리케이션 (Application) 이라고 하며, app 상수에 할당했다.

app은 서버를 세팅하고 서버를 구동하는 역할 그리고 라우팅 기능 수행을 한다.

 

서버를 세팅하는 것?

서버에 필요한 기능을 추가한다고 볼 수 있는데 익스프레스에서 서버의 기능은 미들웨어 형태로 존재한다. 그리고 이 미들웨어에서 익스프레스 인스턴스의 use()함수로 추가할 수 있다.

예를 들어, 서버에서 정적파일(static file)를 호스팅할 때는 다음과 같이 정적 파일설정을 위한 미들웨어를 추가할 수 있다.

 

app.use(express.static('public'));

 

서버를 구동하는 것?

var server = app.listen(3000, function(){
    console.log("Express server has started on port 3000")
});

익스프레스 인스턴스(app)의 listen() 함수를 이용해 서버가 클라이언트의 요청 대기 상태로 들어간 것이다.

이 함수의 첫번째 파라미터인 3000은 대기할 포트 번호이다.

두번째 파라미터는 함수인데 listen() 이 완료되면 실행되는 콜백함수이다. 이 콜백함수가 호출되면 서버 구동이 완료되었다고 판단할 수 있다. 그리고 서버가 구동되었다는 메세지를 터미널에 출력하게 된다.

 

라우팅 기능 수행?

라우팅이란 클라이언트 요청과 서버의 로직을 연결하는 것. 즉, 자원관리하는 역할!

예를 들면, 다음 요청은 '/'요청에 대해 두번째 파라미터인 콜백함수를 호출하는 것이다.

app.get('/', (req, res) => {
	res.send('Hello World!\n');
});

app.get() 함수를 이용해 요청 메소드가 GET이라는 것을 설정한다.

첫번째 파라미터 : 경로 설정 (여기서는 'http://localhost:3000/'으로 접속)

두번째 파라미터 : 콜백함수, 다음과 같은 경로의 요청이 들어왔을 경우 콜백함수가 동작

 

클라이언트에서 어떤 요청이 있을 때 서버는 가지고 있는 기능 중에 이에 적절한 것을 찾아서 응답해줘야하는데 이 두가지를 연결해주는 것을 라우팅이라고 한다.

 

Request

위의 코드에서 콜백함수에서 전달해주는 (req, res) 둘 중, req는 익스프레스 요청(Request)객체라고 한다.

요청 객체는 말 그대로 서버로 요청한 클라이언트의 정보에 대해 담고 있다.

하나의 객체 형태로 되어있는데 키와 함수들로 구성되어 있다.

 - req.params : url 파라미터 정보를 조회

 - req.query : 쿼리 문자열을 조회

 - req.body : 요청 바디를 조회

 

Response

익스프레스 응답 객체(Response)라고 한다. 요청한 클라이언트에게 응답하기 위한 함수들로 구성된 객체.

 - res.send()

 - res.json()

 - res.status()

 

Router

어플리케이션을 이용해 라우팅 로직을 만들 수 있지만 익스프레스에는 별도로 Router() 클래스를 제공한다.

 

 

[REFERENCE]

http://webframeworks.kr/tutorials/nodejs/api-server-by-nodejs-02/

'개발 > Node.js' 카테고리의 다른 글

[Node.js] RESTful API  (0) 2019.08.25
[Node.js] 모듈과 미들웨어 개념  (0) 2019.08.25
[Node.js] About NodeJS  (0) 2019.08.08
Comments