1. 미들웨어(middleware)
미들웨어란 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수입니다. 그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시됩니다.
1) 미들웨어의 기능
- 모든 코드를 실행.
- 요청 및 응답 오브젝트에 대한 변경을 실행.
- 요청-응답 주기를 종료.
- 스택 내의 그 다음 미들웨어를 호출.
현재의 미들웨어 함수가 요청-응답 주기를 종료하지 않는 경우에는 next()를 호출하여 그 다음 미들웨어 함수에 제어를 전달해야 합니다. 그렇지 않으면 해당 요청은 정지된 채로 방치됩니다.
2) 라우팅 처리
라우팅(Routing)은 URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말한다.
// 예시코드
app.get('/', function(req,res,next) {
next()
})
app.listen(3000)
위 예시 함수의 기본형 다음과 같다.
app.METHOD(PATH, HANDLER)
· app: express의 인스턴스
· METHOD: HTTP 요청 메소드(GET, POST 등)
· PATH: 서버에서의 경로
· HANDLER: 라우트(Route)가 일치할 때 실행되는 함수
3) 라우트 경로
라우트 경로는 요청 메소드와의 조합을 통해, 요청이 이루어질 수 있는 엔드포인트를 정의합니다. 라우트 경로는 문자열, 문자열 패턴 또는 정규식일 수 있습니다.
예시는 다음과 같다.
// 문자열
app.get('/about', function (req, res) {
res.send('about');
});
// 문자열 패턴
app.get('/ab?cd', function(req, res) {
res.send('ab?cd');
});
// 정규식
app.get(/a/, function(req, res) {
res.send('/a/');
});
// Path Variable
app.get('/user/:userId/item/:itemId', (req, res) => {
const { userId, itemId } = req.params;
res.send(`userId: ${userId}, itemId: ${itemId}`);
});
4) 라우트 핸들러
클라이언트 요청에 다라 라우트가 일치할 때 실행되는 콜백 함수입니다. 미들웨어와 형태가 흡사한데, 유일한 차이점은 next('route')를 호출하여 나머지 라우트 콜백을 우회할 수도 있다는 점입니다. 이러한 메커니즘을 이용하면 라우트에 대한 사전 조건을 지정한 후, 현재의 라우트를 계속할 이유가 없는 경우에는 제어를 후속 라우트에 전달할 수 있습니다.
· req: Request로 클라이언트의 요청 정보를 담고 있습니다.
· res: Response로 클라이언트에게 응답하기 위한 정보를 담고 있습니다.
· next: 다음 미들웨어 함수를 가리키는 오브젝트입니다.
- 응답 메소드 종류
res.download() | 파일이 다운로드되도록 프롬프트합니다. |
res.end() | 응답 프로세스를 종료합니다. |
res.json() | JSON 응답을 전송합니다. |
res.jsonp() | JSONP 지원을 통해 JSON 응답을 전송합니다. |
res.redirect() | 요청의 경로를 재지정합니다. |
res.render() | 보기 템플리트를 렌더링합니다. |
res.send() | 다양한 유형의 응답을 전송합니다. |
res.sendFile() | 파일을 옥텟 스트림의 형태로 전송합니다. |
res.sendStatus() | 응답 상태 코드를 설정한 후 해당 코드를 문자열로 표현한 내용을 응답 본문으로서 전송합니다. |
출처
https://m.blog.naver.com/hj_kim97/222914781861
[Node.js]Express 미들웨어 모듈 정리(body-parser, cookie-parser, express-session, cors, morgan, multer)
Express 미들웨어 모듈 - 미들웨어 모듈 - 데이터 파싱 : body-parser 미들웨어 - 데이터 압축 : compress...
blog.naver.com
https://expressjs.com/ko/guide/routing.html
Express 라우팅
라우팅 라우팅은 애플리케이션 엔드 포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 말합니다. 라우팅에 대한 소개는 기본 라우팅을 참조하십시오. 다음 코드는 매우 기본
expressjs.com
'Sparta > TIL' 카테고리의 다른 글
24.02.21 TIL - 객체지향 프로그래밍(OOP) (1) (0) | 2024.02.22 |
---|---|
24.02.20 TIL - 코딩 환경 설정만 한시간 (1) | 2024.02.21 |
24.02.15 TIL - express 기초 (0) | 2024.02.16 |
24.02.14 TIL - aws-sdk migration 에러 (1) | 2024.02.14 |
24.02.07 TIL - AWS Public IP (0) | 2024.02.08 |