Express.js는 Node.js를 사용하여 웹 애플리케이션을 구축하는 데 가장 널리 사용되는 프레임워크 중 하나입니다. RESTful API 생성을 용이하게 하고 모듈식 방식으로 애플리케이션을 구성할 수 있습니다. Express.js의 주요 개념 중 하나는 미들웨어를 사용하는 것입니다. 이 기사에서는 미들웨어가 무엇인지, 어떻게 작동하는지, 자신만의 미들웨어를 만드는 방법에 대해 설명합니다.
미들웨어는 요청 개체(req), 응답 개체(res) 및 next() 함수에 액세스할 수 있는 함수입니다. 요청 및/또는 응답 개체를 수정하고 요청-응답 주기를 제어할 수 있습니다. 미들웨어는 다음과 같은 여러 가지 작업을 수행할 수 있습니다.
Express.js 미들웨어의 기본 서명은 다음과 같습니다.
function middleware(req, res, next) { // Lógica do middleware next(); // Chama o próximo middleware }
Express에서는 여러 유형의 미들웨어를 찾을 수 있습니다.
요청이 수신되면 '미들웨어 체인'을 통과합니다. 각 미들웨어는 요청을 처리할 수 있으며 실행이 끝나면 다음 미들웨어를 호출할지(next() 함수 사용) 또는 응답을 마무리할지 결정할 수 있습니다.
const express = require('express'); const app = express(); // Middleware global app.use((req, res, next) => { console.log('Request Type:', req.method); next(); }); // Middleware específico para a rota /user app.use('/user', (req, res, next) => { console.log('Middleware para /user'); next(); }); app.get('/user', (req, res) => { res.send('Página do Usuário'); }); app.listen(3000, () => { console.log('Servidor rodando na porta 3000'); });
Express 또는 타사에서 제공하는 미들웨어 외에도 인증, 로깅, 데이터 조작 등의 특정 기능을 처리하는 자체 미들웨어를 만들 수 있습니다.
간단한 인증 미들웨어의 예:
function autenticar(req, res, next) { const token = req.header('Authorization'); if (!token) { return res.status(401).send('Acesso negado. Token não fornecido.'); } try { // Lógica para validar o token next(); // Continua para o próximo middleware } catch (err) { res.status(400).send('Token inválido.'); } } app.use(autenticar); // Aplica o middleware para todas as rotas
Express에서는 npm을 통해 설치할 수 있는 타사 미들웨어도 사용할 수 있습니다. 가장 인기 있는 것들은 다음과 같습니다:
Morgan 설치 및 사용:
npm install morgan
const morgan = require('morgan'); // Middleware de log app.use(morgan('tiny')); app.get('/', (req, res) => { res.send('Hello World'); });
미들웨어는 등록된 순서대로 실행되므로 정의하는 순서가 중요합니다. 예를 들어 인증이 필요한 경로 뒤에 인증 미들웨어를 정의하면 해당 경로에 대해서는 실행되지 않습니다.
app.use(express.json()); // Middleware para parsear JSON app.post('/secure-data', autenticar, (req, res) => { res.send('Acesso a dados seguros'); });
미들웨어가 next() 함수를 호출하지 않으면 요청-응답 주기가 중단됩니다. 이는 인증 확인과 같이 미들웨어 자체 내에서 요청을 마무리하려는 경우에 유용할 수 있습니다.
function autenticar(req, res, next) { if (!req.header('Authorization')) { return res.status(403).send('Não autorizado'); } next(); }
미들웨어는 Express.js를 사용하여 애플리케이션을 구축하는 데 필수적인 부분으로 뛰어난 유연성과 모듈성을 제공합니다. 미들웨어 사용법을 익히면 API를 효율적으로 구성하고, 코드를 재사용하고, 인증, 보안, 데이터 조작 등의 기능을 간단하고 확장 가능한 방식으로 추가할 수 있습니다.
아직 프로젝트에서 사용자 정의 미들웨어를 사용하고 있지 않다면 로깅 또는 인증 미들웨어와 같은 간단한 것부터 시작하여 Express.js가 제공하는 모듈성과 유연성을 경험해 보세요!
기사가 마음에 드셨나요? 동료 개발자들과 공유하는 것을 잊지 마세요!
위 내용은 Express.js의 미들웨어 이해 및 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!