Express는 Node.js를 위한 빠르고 간결한 웹 프레임워크로, 웹 애플리케이션과 API를 쉽게 구축할 수 있도록 도와줍니다. Express는 미들웨어와 라우팅 기능을 제공하여 서버 측 로직을 간단하게 작성할 수 있게 해줍니다.
Express의 주요 개념
미들웨어(Middleware):
미들웨어는 요청(Request)과 응답(Response) 객체를 처리하는 함수입니다.
미들웨어는 요청-응답 주기에서 여러 단계로 나뉘며, 각 단계에서 특정 작업을 수행할 수 있습니다.
미들웨어는 app.use()를 통해 등록되며, 순차적으로 실행됩니다.
라우팅(Routing):
라우팅은 클라이언트 요청에 대해 서버가 어떤 응답을 할지 결정하는 과정입니다.
Express에서는 app.get(), app.post(), app.put(), app.delete() 등의 메서드를 사용하여 라우트를 정의할 수 있습니다.
요청(Request)와 응답(Response) 객체:
req 객체는 클라이언트의 요청 정보를 담고 있으며, res 객체는 서버가 클라이언트에게 보낼 응답을 담고 있습니다.
app.use()의 용도
app.use()는 미들웨어를 애플리케이션에 등록하는 데 사용됩니다. 미들웨어는 요청-응답 주기의 특정 지점에서 실행되며, 다양한 작업을 수행할 수 있습니다. 예를 들어, 요청 본문을 파싱하거나, 로그를 남기거나, 인증을 처리하는 등의 작업을 할 수 있습니다.
예제
const express = require('express');
const app = express();
// JSON 본문을 파싱하는 미들웨어
app.use(express.json());
// URL-encoded 본문을 파싱하는 미들웨어
app.use(express.urlencoded({ extended: true }));
// 커스텀 미들웨어: 모든 요청에 대해 로그를 남김
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next(); // 다음 미들웨어로 넘어감
});
// 라우트 정의
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.post('/data', (req, res) => {
res.json(req.body);
});
// 오류 처리 미들웨어
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
// 서버 시작
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
주요 미들웨어 예제
Body Parsing 미들웨어:
express.json(): JSON 형식의 요청 본문을 파싱합니다.
express.urlencoded(): URL-encoded 형식의 요청 본문을 파싱합니다.
정적 파일 제공 미들웨어:
express.static(): 정적 파일을 제공하는 미들웨어입니다. 예를 들어, HTML, CSS, JavaScript 파일을 제공할 때 사용합니다.
app.use(express.static('public'));
커스텀 미들웨어:
사용자가 직접 정의한 미들웨어로, 요청-응답 주기에서 특정 작업을 수행할 수 있습니다.
app.use((req, res, next) => {
console.log('Request URL:', req.originalUrl);
next();
});
정리
Express는 Node.js를 위한 웹 프레임워크로, 웹 애플리케이션과 API를 쉽게 구축할 수 있게 해줍니다.
미들웨어는 요청과 응답 객체를 처리하는 함수로, app.use()를 통해 등록됩니다.
라우팅은 클라이언트 요청에 대해 서버가 어떤 응답을 할지 결정하는 과정입니다.
**app.use()**는 미들웨어를 애플리케이션에 등록하는 데 사용되며, 요청-응답 주기의 특정 지점에서 실행됩니다.
이러한 개념을 이해하면 Express를 사용하여 다양한 웹 애플리케이션과 API를 효율적으로 구축할 수 있습니다.
'Web: html ccs javascript react' 카테고리의 다른 글
CORS(Cross-Origin Resource Sharing) (0) | 2024.06.14 |
---|---|
[ubuntu] apache로 서버 폴더 tree 보여주기 (0) | 2024.05.28 |
WSL 설치해서 cra 시작하기 (0) | 2023.11.04 |
mongodb 몽고DB 기본 (0) | 2023.09.07 |
[react] tailwindcss 테일윈드CSS (0) | 2023.09.05 |