-
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로 설정되며 임의로 설정할 수도 있다.
이렇게 익스프레스는 들어오는 요청을
다양한 미들웨어(함수)를 통해 이동하며 처리한다.
이는 요청을 다루는 핸들러를 자유롭게 연결할 수 있게 하고,
코드를 블록 또는 조각으로 분할할 수 있다.
'Node.js' 카테고리의 다른 글
Express.js] 라우터 만들기 (0) 2023.12.06 Express.js] 익스프레스 github으로 내부구조 확인하기 (0) 2023.12.06 Express.js 시작하기 (0) 2023.12.06 코드 수정 후 디버그 모드 자동 재시작하기 | VS Code, Nodemon (0) 2023.12.05 VS Code의 디버그 모드 활용 | 논리 오류 찾기 (0) 2023.12.05