ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Express.js] 미들웨어 추가하기
    Node.js 2023. 12. 6. 13:29

    서버의 요청을 처리해 응답하는 과정에서

    익스프레스는 미들웨어를 사용할 수 있다.

     

    기존 코드

    const http = require("http");
    
    const express = require("express");
    
    const app = express();
    
    const server = http.createServer(app);
    
    server.listen(3000);

     

    미들웨어 추가

    const http = require("http");
    
    const express = require("express");
    
    const app = express();
    
    app.use((req, res, next) => { // 새로운 미들웨어 추가
      console.log("In the middleware!");
    });
    
    const server = http.createServer(app);
    
    server.listen(3000);

     

    app.use()는 익스프레스 내장 함수로 미들웨어를 추가한다.

    매개변수로 요청 핸들러 배열 또는 함수를 받을 수 있다.

    위는 화살표 함수를 추가한 상태로 매개변수 명은 바꿀 수 있다.

     

    req와 res는 앞서 공부한 그대로 사용하면 된다.

     

    const http = require("http");
    
    const express = require("express");
    
    const app = express();
    
    app.use()
    
    app.use((req, res, next) => {
      // 새로운 미들웨어 추가
      console.log("In the middleware!");
      next(); // 요청을 아래에 있는 다른 미들웨어로 이동, 없으면 여기서 미들웨어는 멈춤
    });
    
    app.use((req, res, next) => {
      console.log("In another middleware!");
    });
    
    const server = http.createServer(app);
    
    server.listen(3000);

     

    첫번째 미들웨어에서 다음 미들웨어로 이동하기 위해서는

    next()를 사용해야 한다.

     

    const http = require("http");
    
    const express = require("express");
    
    const app = express();
    
    app.use()
    
    app.use((req, res, next) => {
      // 새로운 미들웨어 추가
      console.log("In the middleware!");
      next(); // 요청을 아래에 있는 다른 미들웨어로 이동, 없으면 여기서 미들웨어는 멈춤
    });
    
    app.use((req, res, next) => {
      console.log("In another middleware!");
      res.send("<h1>Hello from Express!</h1>"); // 익스프레스의 기본 응답 헤더는 text/html. 물론 res.setHeader()로 지정해도 된다.
    });
    
    const server = http.createServer(app);
    
    server.listen(3000);

     

    노드에서 요청에 대한 응답을 보내기 위해

    res.write()를 사용했었다.

     

    익스프레스에서는 res.send()를 사용할 수 있다.

    any 유형의 응답(어떤 유형이든 무관)을 보낼 수 있다.

    익스프레스의 기본 응답은 text/html로 설정되며 임의로 설정할 수도 있다.

     

     

    이렇게 익스프레스는 들어오는 요청을

    다양한 미들웨어(함수)를 통해 이동하며 처리한다.

     

    이는 요청을 다루는 핸들러를 자유롭게 연결할 수 있게 하고,

    코드를 블록 또는 조각으로 분할할 수 있다.

Designed by Tistory.