[Node.js] Express 프레임워크 (feat. 그 외 next, res, req함수)

박두팔이·2024년 1월 31일
0

Node.JS

목록 보기
1/20

Express 프레임워크?

Javascript를 서버에서 사용하기 위해 구글 V8엔진을 기반으로 한 nodeJS프레임워크를 사용해야 한다. 따라서 REST API서버를 편리하게 구현하기 위한 프레임워크가 express이다.

next 함수

Express는 Node.js를 위한 인기 있는 웹 서버 프레임워크로, 유연성과 간결한 구조로 알려져 있습니다. 개발자들이 효율적으로 견고한 웹 애플리케이션 및 API를 구축할 수 있게 돕습니다. Express의 핵심 개념 중 하나는 미들웨어의 사용인데, 미들웨어는 애플리케이션의 요청-응답 사이클에서 다음 미들웨어로 넘어가기 위한 next 함수를 포함하여 요청(req), 응답(res) 객체에 접근할 수 있는 함수들입니다.

Express에서의 미들웨어

미들웨어 함수는 코드를 실행하고, 요청 및 응답 객체를 변경하며, 요청-응답 사이클을 종료하고, 스택에서 다음 미들웨어 함수를 호출할 수 있습니다. 현재 미들웨어 함수가 요청-응답 사이클을 종료하지 않는 경우, 다음 미들웨어로 제어를 넘기기 위해 next()를 반드시 호출해야 합니다. 그렇지 않으면 요청이 계속 대기 상태에 머무르게 됩니다.

next 함수의 역할

next 함수는 Express가 제공하는 함수로, 호출될 때 줄 서 있는 다음 미들웨어를 실행합니다. next 함수는 다음과 같은 이유로 중요합니다:

  • 제어 흐름: 하나의 미들웨어에서 다른 미들웨어로 제어를 넘겨주어, 요청과 응답 객체를 처리할 수 있는 미들웨어 체인을 생성합니다.
  • 에러 처리: next 함수에 에러를 전달함으로써 (예: next(err)), Express는 에러를 에러 처리 미들웨어로 전달하여 중앙 집중식 에러 관리를 가능하게 합니다.

사용 예시

app.use((req, res, next) => {
    // 몇 가지 작업 수행
    next(); // 다음 미들웨어로 제어를 넘김
});

app.use((req, res, next) => {
    // 첫 번째 미들웨어 이후에 작동하는 미들웨어
    next();
});

// 에러 처리 미들웨어
app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('무언가 문제가 발생했습니다!');
});

profile
기억을 위한 기록 :>

0개의 댓글