Node.js를 사용한 Express.js의 미들웨어 이해 - 9부

Patricia Arquette
풀어 주다: 2024-09-21 06:29:49
원래의
814명이 탐색했습니다.

Understanding Middleware in Express.js with Node.js - Part 9

Express.js의 미들웨어 이해: 쉬운 방법

Express.js의 미들웨어는 다소 기술적으로 들릴 수도 있지만, 일단 익숙해지면 매우 간단합니다. 이는 경주의 피트 스톱과 같습니다. 요청이 들어오고 결승선(경로 핸들러)에 도달하기 전에 수정, 확인 또는 기록을 위해 여러 지점에서 몇 군데 정차합니다.

이 글에서는 미들웨어가 무엇인지, 어떻게 사용하는지 분석하고 실제 사례를 보여드리겠습니다. 최대한 간단하고 실용적으로 만들어 보겠습니다!


그렇다면 미들웨어란 정확히 무엇입니까?

서버에 대한 모든 요청이 여행 중인 자동차라고 상상해 보세요. 미들웨어는 각 자동차가 목적지에 도달하기 전에 통과해야 하는 일련의 검문소와 같습니다. 각 체크포인트(미들웨어)에서 어떤 일이 발생합니다. 차가 세차를 하거나, 간식을 집거나, 돌아서 집에 가라는 지시를 받을 수도 있습니다!

코딩 측면에서 미들웨어는 요청과 응답 사이에 있는 기능일 뿐입니다. 다음을 수행할 수 있습니다.

  • 코드를 실행해 보세요.
  • 요청이나 응답을 변경하세요.
  • 더 이상 요청을 중단하세요.
  • 다음 미들웨어에 전달합니다.

다음은 매우 기본적인 예입니다.

app.use((req, res, next) => {
  console.log('A request came in!');
  next(); // Pass the baton to the next middleware
});
로그인 후 복사

요청이 서버에 도달할 때마다 메시지를 기록한 후 제어권을 다음 미들웨어나 경로 핸들러로 전달합니다.


내장 미들웨어: Express의 즉시 사용 가능한 도구

Express에는 생활을 더욱 편리하게 해주는 몇 가지 미들웨어 기능이 내장되어 있습니다. 다음은 아마도 항상 사용하게 될 몇 가지 사항입니다.

1- express.json(): 이는 수신되는 JSON 데이터를 처리하는 데 도움이 됩니다.

app.use(express.json());
로그인 후 복사

2- express.static(): 이미지나 CSS와 같은 정적 파일을 제공하고 싶으십니까? 이 미들웨어로 모든 것을 해결할 수 있습니다.

app.use(express.static('public'));
로그인 후 복사

3- express.urlencoded(): HTML 양식을 통해 전송된 데이터를 구문 분석하는 데 도움이 됩니다.

app.use(express.urlencoded({ extended: true }));
로그인 후 복사

맞춤형 미들웨어: 나만의 구축

로그인이나 사용자 로그인 여부 확인과 같은 특정 작업을 처리하기 위해 자체 미들웨어를 만들 수도 있습니다.

예: 단순 로거

app.use((req, res, next) => {
  console.log(`Request Method: ${req.method}, URL: ${req.url}`);
  next();
});
로그인 후 복사

요청이 서버에 도달할 때마다 HTTP 메서드와 URL을 기록합니다. 앱에서 일어나는 일을 추적하는 데 유용합니다.

예: 인증 확인

const checkAuth = (req, res, next) => {
  if (!req.headers.authorization) {
    return res.status(403).send('You shall not pass! (Unauthorized)');
  }
  next(); // Allow the request to continue if authorized
};

app.use(checkAuth);
로그인 후 복사

여기서 요청에 승인 헤더가 없으면 '403 Forbidden' 메시지와 함께 차단됩니다. 그렇지 않으면 전달됩니다.


타사 미들웨어 사용

모든 것을 직접 쓰고 싶지 않으신가요? 좋은 소식: Express는 작업을 처리할 수 있는 수많은 타사 미들웨어와 함께 작동합니다.

예: 로깅을 위한 Morgan

morgan은 요청 로깅에 널리 사용되는 미들웨어입니다. 사용 방법:

1- 설치:

npm install morgan
로그인 후 복사

2- 앱에 추가:

const morgan = require('morgan');
app.use(morgan('dev'));
로그인 후 복사

이제 요청이 들어올 때마다 터미널에 멋진 형식의 로그가 표시됩니다.

예: 교차 출처 요청에 대한 cors

cors 미들웨어를 사용하면 앱이 다른 도메인의 요청을 처리할 수 있습니다(API 구축 시 매우 유용함).

1- 설치:

npm install cors
로그인 후 복사

2- 사용:

const cors = require('cors');
app.use(cors());
로그인 후 복사

그렇습니다! 이제 앱에서 힘들이지 않고도 교차 출처 요청을 처리할 수 있습니다.


특정 경로를 위한 미들웨어

항상 앱의 모든 경로에 미들웨어를 적용할 필요는 없습니다. 때로는 특정 항목에서만 실행되기를 원할 수도 있습니다.

app.get('/dashboard', checkAuth, (req, res) => {
  res.send('Welcome to the Dashboard');
});
로그인 후 복사

여기서 checkAuth 미들웨어는 누군가가 /dashboard 경로에 액세스하려고 할 때만 실행됩니다. 승인이 없으면 들어갈 수 없습니다!


미들웨어로 오류 처리하기

때때로 상황이 잘못될 때도 있습니다. 이것이 오류 처리 미들웨어가 유용한 곳입니다. 약간 다르게 보입니다. err, req, res 및 next의 네 가지 인수가 필요합니다.

app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Something went wrong!');
});
로그인 후 복사

이 미들웨어는 오류를 포착하고 친숙한 "500 내부 서버 오류" 메시지를 다시 보냅니다.


마무리

미들웨어는 Express.js의 스위스 군용 칼과 같습니다. 요청을 관리하고, 오류를 처리하고, 로깅이나 인증과 같은 멋진 기능을 추가하는 데 도움이 됩니다. 내장된 옵션을 사용하든, 직접 작성하든, 타사 도구를 가져오든 미들웨어는 앱을 모듈화하고 관리하기 쉽게 유지합니다.

읽어주셔서 감사합니다. 즐거운 코딩 되세요! ?

위 내용은 Node.js를 사용한 Express.js의 미들웨어 이해 - 9부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!