Middleware 안으로 소개 Express.js
Middleware in은 Express.js 요청-응답 수명 주기 동안 특정 순서로 함수를 실행할 수 있게 해주는 강력한 개념입니다. 이러한 기능은 인증, 로깅, 데이터 유효성 검사 등과 같은 다양한 작업을 수행할 수 있습니다. Middleware 함수는 순차적으로 실행되며 각 함수는 스택의 다음 항목으로 제어를 전달하는 함수 뿐만 아니라 및 객체 middleware 에 액세스할 수 있습니다. request
response
next
middleware
왜 사용합니까 Middleware ?
Middleware 애플리케이션의 기능을 모듈화하고 유지 관리성을 향상시키는 데 필수적입니다. 이를 통해 경로 핸들러를 깨끗하게 유지하고 특정 작업에 집중할 수 있으며 공통 또는 교차 편집 문제를 middleware 기능으로 오프로드할 수 있습니다. 이러한 관심사 분리는 코드 재사용성을 촉진하고 코드베이스를 보다 체계적으로 만듭니다.
생성 및 사용 Middleware
middleware 에서 생성하려면, 및 의 Express.js 세 가지 매개변수를 사용하는 함수를 정의 request
합니다. response
next
middleware 다음은 들어오는 각 요청을 기록 하는 기본적인 예입니다 .
const logMiddleware =(req, res, next) => {
console.log(`Received a ${req.method} request at ${req.url}`);
next(); // Pass control to the next middleware
};
app.use(logMiddleware);
app.use()
모든 경로에 전역적 으로 적용하는 방법을 사용하거나 middleware 특정 경로에 선택적으로 사용할 수 있습니다.
Middleware 실행 순서
Middleware 함수는 를 사용하여 정의된 순서대로 실행됩니다 app.use()
.
예를 들어:
app.use(middleware1);
app.use(middleware2);
이 경우 들어오는 모든 요청에 대해 middleware1
이전에 실행됩니다 middleware2
.
오류 처리 Middleware
함수 내에서 오류가 발생하면 middleware 오류를 함수에 전달할 수 next
있으며 Express.js 자동으로 오류 처리로 건너뜁니다 middleware.
예를 들면 다음과 같습니다.
const errorMiddleware =(err, req, res, next) => {
console.error(err);
res.status(500).send('Something went wrong!');
};
app.use(errorMiddleware);
Middleware 인증에 사용
Middleware 일반적으로 웹 응용 프로그램에서 인증 및 권한 부여를 구현하는 데 사용됩니다. 예를 들어 middleware 특정 경로에 대한 액세스를 허용하기 전에 사용자가 인증되었는지 확인하는 함수를 만들 수 있습니다.
const authenticateMiddleware =(req, res, next) => {
if(req.isAuthenticated()) {
return next(); // User is authenticated, proceed to the next middleware
}
res.redirect('/login'); // User is not authenticated, redirect to login page
};
app.get('/profile', authenticateMiddleware,(req, res) => {
res.send('Welcome to your profile!');
});
결론
Middleware in은 Express.js 웹 애플리케이션의 기능을 관리하고 향상시키는 데 필수적인 도구입니다. 재사용 가능한 함수를 생성함으로써 middleware 코드를 간소화하고 문제를 모듈화하며 프로젝트의 전반적인 유지 관리성을 향상시킬 수 있습니다. 인증 처리에서 로깅 및 오류 관리에 이르기까지 middleware 강력하고 안전한 웹 애플리케이션을 효율적으로 구축할 수 있습니다.