NodeJS
use 에 있는 req, res, next 에 대해 설명해줘
GPT-4o
app.use()에 전달되는 함수의 매개변수 req, res, next는 Express.js에서 미들웨어 함수의 표준 매개변수입니다. 각각의 역할은 다음과 같습니다:
req (Request 객체):
req는 클라이언트의 HTTP 요청에 대한 정보를 담고 있는 객체입니다.
요청의 URL, HTTP 메서드(GET, POST 등), 헤더, 본문 데이터 등을 포함하고 있습니다.
예를 들어, req.params는 URL 경로의 매개변수를, req.query는 쿼리 문자열을, req.body는 요청 본문을 나타냅니다.
res (Response 객체):
res는 서버가 클라이언트에게 응답을 보낼 때 사용하는 객체입니다.
res.send()를 사용하여 응답 본문을 전송하거나, res.json()을 사용하여 JSON 형식으로 응답을 보낼 수 있습니다.
res.status()를 사용하여 HTTP 상태 코드를 설정할 수도 있습니다.
next (Next 함수):
next는 미들웨어 체인에서 다음 미들웨어 함수를 호출하는 데 사용됩니다.
next()를 호출하지 않으면 요청이 현재 미들웨어에서 멈추고, 이후의 미들웨어는 실행되지 않습니다.
next에 인수를 전달하면, Express는 오류 처리 미들웨어로 바로 이동합니다. 예를 들어, next(new Error('오류 메시지'))와 같이 사용할 수 있습니다.
이 세 가지 매개변수는 Express.js의 미들웨어에서 매우 중요한 역할을 하며, 각각의 요청과 응답을 처리하고 미들웨어 간의 흐름을 제어하는 데 사용됩니다.
app.use((req,res,next) => {}); 여기에 들어가는 req,res,next 를 보자면
req : Client 의 정보를 담고 있고, 속성을 추가하거나 수정하면 누적되서 다음 미들웨어(app.use)의 req에 보내진다.
res : Server -> Client 로 응답하기 위한 객체(Object)고, 속성을 추가하거나 수정하면 누적되서 다음 미들웨어(app.use)의 res에 보내진다.
next : 미들웨어 체인에서 다음 미들웨어로 Task 를 넘기기 위한 함수이므로 각 미들웨어 함수에서 독립적으로 사용된다.