1. morgan 미들웨어
1.1. morgan 이란?
- Morgan은 HTTP 요청 로깅을 위한 Express 미들웨어이다.
- 요청에 대한 정보를 표준 출력(콘솔)이나 파일 등에 간편하게 기록할 수 있다.
- 개발 환경에서는 콘솔에, 프로덕션 환경에서는 파일이나 외부 로깅 서비스에 로그를 남기는 데 주로 사용된다.
1.2. 설치
npm install morgan
1.3. 사용 방법
const express = require('express');
const morgan = require('morgan');
const app = express();
// Morgan 미들웨어 등록 (기본 포맷: 'combined')
app.use(morgan('combined'));
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(3000, () => console.log('서버가 포트 3000에서 실행 중입니다.'));
require('morgan')으로 모듈을 가져온 후 app.use(morgan('dev')) 혹은 app.use(morgan('combined') 를 해주면 된다.
2. cookieParser 미들웨어
2.1. cookieParser 란?
- **cookie-parser**는 Express.js 애플리케이션에서 HTTP 요청의 쿠키를 파싱하여, req.cookies 객체로 쉽게 접근할 수 있게 해주는 미들웨어 이다.
- 쿠키의 값을 자동으로 파싱하여 JavaScript 객체 형태로 제공한다.
- **서명된 쿠키(signed cookies)**를 지원하여, 쿠키의 무결성을 확인할 수 있다.
2.2. 설치
npm install cookie-parser
2.3. 사용 방법
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
// cookie-parser 미들웨어 등록
app.use(cookieParser());
// 라우트 예시
app.get('/', (req, res) => {
// 클라이언트로부터 받은 쿠키 출력
console.log('쿠키:', req.cookies);
// 쿠키 설정
res.cookie('name', 'John Doe', { maxAge: 900000, httpOnly: true });
res.send('Hello, World! 쿠키가 설정되었습니다.');
});
app.listen(3000, () => console.log('서버가 포트 3000에서 실행 중입니다.'));
기본적으로 위와 같이 쿠키 사용이 가능하다.
app.use(cookieParser('secretKey')); //서명된 쿠기
app.get('/', (req, res) => {
req.signedCookies; // 이와 같이 서명된 쿠키를 사용할 수 있다.
});
서명된 쿠키 또한 사용할 수 있다.
3. express.json, express.urlencoded 미들웨어
3.1. express.json 란?
- HTTP 요청의 본문이 JSON 형식일 때 이를 파싱하여 **req.body**에 JavaScript 객체로 저장해주는 미들웨어
- 주로 API 서버에서 클라이언트가 JSON 데이터를 전송할 때 사용된다.
3.2. express.urlencoded 란?
- URL-인코딩된 형식의 요청 본문 파싱.
- HTML 폼을 통해 데이터를 전송할 때 사용된다.
3.3. 설치
기본적으로 express에 내장
3.4. 사용 방법
const express = require('express');
const app = express();
// JSON 파싱 미들웨어
app.use(express.json());
// URL-인코딩된 데이터 파싱 미들웨어
app.use(express.urlencoded({ extended: true }));
// 라우트 예시
app.post('/data', (req, res) => {
console.log(req.body);
res.send('데이터가 수신되었습니다!');
});
app.listen(3000, () => console.log('서버가 포트 3000에서 실행 중입니다.'));
req.body가 express.json 및 express.urlencoded 로 인해 파싱되어 손쉽게 사용이 가능하다.
'Node.js' 카테고리의 다른 글
익스프레스 웹 서버 만들기 - 미들웨어(session) (0) | 2025.01.14 |
---|---|
익스프레스 웹 서버 만들기 - 미들웨어(express.static) (1) | 2025.01.14 |
익스프레스 웹 서버 만들기 - 미들웨어(정의, 에러처리, next() 활용) (0) | 2025.01.13 |
익스프레스 웹 서버 만들기 - express로 HTML 서빙하기 (0) | 2025.01.12 |
익스프레스 웹 서버 만들기 - express 서버 사용해보기 (1) | 2025.01.12 |