Home express 프레임워크
Post
X

express 프레임워크

Express에 대해 알아보자.


Express

Express에 가보면, Express란 ‘Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크’ 라고 정의되어 있습니다.

이전 포스트에서 Node.js는 브라우저 외의 환경에서도 javascript로 작성된 파일을 구동할 수 있게 해준다고 했습니다.

Express는 Node.js 환경에서 서버를 구성할 수 있게 만든 클래스와 라이브러리의 집합체라고 볼 수 있습니다.

http 모듈만 사용해서 웹 서버를 구성하면 직접 많은 기능을 개발해야 하지만 Express 프레임워크를 사용하면 간단한 코드로 웹 서버의 기능을 대부분 구현할 수 있습니다.

또한, Express는 프레임워크이므로 미들웨어와 라우터 등의 기능을 사용하여 편리하게 웹 서버를 구성할 수 있으며 개발 규칙을 강제하여 코드 및 구조의 통일성을 향상시킵니다.

  • 설치

    1
    
    npm i express
    

Express와 http 비교

1
2
3
4
5
6
7
8
9
10
11
12
13
// http 모듈
const http = require("http");
const port = 3000;

http
  .createServer(function (request, response) {
    response.writeHead(200, { "Content-Type": "text/html" });
    response.write("Hello http");
    response.end();
  })
  .listen(port, function () {
    console.log("http server");
  });
1
2
3
4
5
6
7
8
9
10
11
12
13
//express 모듈
const express = require("express");
const app = express;
const port = 3000;

// router
app.get("/", (req, res) => {
  res.send("Hello express");
});

app.listen(port, () => {
  console.log("express server");
});

Express 사용

1
2
3
4
5
6
7
8
// node_modules 에 있는 express 관련 파일을 가져옵니다.
var express = require("express");

// ES6 import (package.json의 type을 module로 설정 시 사용)
import express from "express";

// express는 함수이므로, 반환값을 변수에 저장한다.
const app = express();

Express 모듈의 메서드

  1. app.set(key, value)
    서버 설정을 위한 함수

  2. app.get(key)
    설정된 서버 속성을 꺼내올 수 있습니다.

  3. app.use([path], function, [function, ...])
    미들웨어 함수 사용

    Middleware

    • 미들웨어
      Express에서 요청이 들어올 때 응답 까지의 중간과정을 함수로 분리해 사용합니다.
      이렇게 분리한 각각의 것들을 미들웨어라고 부릅니다.

      즉, 서버와 클라이언트를 이어주는 중간작업이라 생각하면 됩니다.

      미들웨어는 use()를 이용해 등록을 할 수 있고, next()를 이용해 다음 미들웨어로 넘길 수 있습니다.
      (next()가 생략되는 미들웨어도 존재합니다.)


라우팅 Routing

Client의 요청 (URL 및 특정 HTTP 요청 메서드)에 애플리케이션이 응답하는 방법을 결정하는 것입니다.

각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러한 함수는 라우트가 일치할 때 실행됩니다.

  • 구성
    app.Method(Path, Handler)
    • app : express의 인스턴스
    • Method : HTTP 요청 메서드
    • Path : 서버의 경로
    • Handler : 일치할 때 실행될 함수
1
2
3
4
5
6
7
8
// '/' 경로에 GET 요청이 올 경우 "hello world"로 응답한다.
app.get("/", (req, res) => {
  res.send("hello world");
});

app.post("/", (req, res) => {
  res.send("Got a POST request");
});

Express 서버 구축

  1. express 설치
    Nodejs를 설치한 후 npm init 명령어로 프로젝트를 초기화하고 package.json 파일을 생성합니다.

    npm i express 명령어로 express 모듈을 설치합니다.

  2. Express 기반 서버 구동 app.js 파일을 만들어 코드를 작성합니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    import express from "express";
    
    const app = express();
    
    // route
    app.get("/", (req, res) => {
      res.send("Hello World!");
    });
    
    // 3000 포트로 서버 오픈
    app.listen(3000, () => {
      console.log("express server on port 3000");
    });
    
  3. 서버 실행

    1
    
     node app.js
    

    express-Server


결론

Express에 대해 알아보고 Hello World를 출력하는 간단한 웹 서버를 구축했습니다.


참조

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.