ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Express.js로 서버 만들기 - CodeHan의 코딩공부
    BackEnd/개념정리 2022. 9. 12. 09:53
    반응형

    Node의 유용한 Module인 Express.js로 쉽고 간단하게 서버를 만들어보자.

    정말 어렵지 않고 좋은 라이브러리라고 생각한다. 그럼 바로 시작하자.

     

    const express = require('express')

    const app = express();

    app.get('/',(req, res, next) => {
      res.send(...);
    })
    app.listen(8080);
     
     

    끝났다.

    단 6줄만에 서버를 만들고 get요청까지 보내는 함수를 만들었다.
    이제 자세한 코드를 조금씩 들여다보자.
     

    코드리뷰

    Express req,res,next 처리하는 함수를 middleware 부르고 express middleware 연속이다.

    Express 한  res반응을 하면  뒤에 연결된 middleware 호출되지 않는다.

     

    App.use 들어오는 모든 연결에 대해서 처리하는 함수.

    비슷한 역할을 하는 app.all 있다.

    둘의 차이점은??

     : all 해당 경로에서만 응답하고 하위 경로에서는 응답하지 않는다.

    exact 속성을 가지고 있지만, use 해당 경로 하위 경로에서도 응답한다.

     

    Requset

    Request path, headers, params, query 다양한 정보를 담고있다.

    Params /:params 호출되고 오브젝트형태로 저장된다.

    Query /?keyword=xxx 같은 형식으로 표현된다.

    Response

    서버에서 client 보내는 응답으로 보통 statusCode 서버에서 보내는 data 담겨있다,

    Res.setHeader('key', 'value') 헤더도 보낼 있는데 이때 key value형태로 전송한다.

     

    MiddleWare Chaining의 특징

    누가 먼저 등록했는지 등록한 순서가 중요하다.

    같은 요청에 대해 중복으로 콜백함수를 등록할 있다.

    해당 경로에 대한 요청이 들어왔을 아무런 응답을 해주지 않으면 멈춘 상태가 된다.

    그러므로 요청에 대한 응답을 반드시 해주어야 하고 이를 유념하며 서버를 작성해야한다.

    어떻게 응답을 있을까?

    Middlewate chining 되어 있으므로 next() 호출해야 다음 체인으로 넘어간다.

    Next에서 route 넣어주면 요청한 응답에서 바로 다음 체인으로 넘어간다.

    안에 에러도 넣어줄 있는데 어떤 에러인지 없으므로 에러는 항상 마지막에 호출해주어야한다.

    App.use((error, res,req,next) => {new Error()}) 응답할 있다.

    만약 에러가 발생하지 않았지만 없는 경로라면?

    에러 메시지 전이나 후에 없는 경로에 대한 middleware 작성해주면 된다.

    ex) app.use((res,req,next) => {res.status(404).send('Not Found')};

     

     

    요약하자면 express는 흐름이 이어지게 설계해야 한다!

     

     

    반응형

    댓글

Designed by Tistory.