>  기사  >  웹 프론트엔드  >  nodejs 미들웨어 구현

nodejs 미들웨어 구현

WBOY
WBOY원래의
2023-05-28 15:07:39605검색

Node.js는 매우 강력한 서버측 운영 환경이자 인기 있는 백엔드 개발 프레임워크입니다. Node.js에는 많은 강력한 기능이 있으며 그 중 하나가 미들웨어입니다. 미들웨어는 Node.js 애플리케이션에 요청을 처리하는 보다 유연하고 사용자 정의 가능한 방법을 제공하는 Node.js의 중요한 개념입니다. 다음 기사에서는 Node.js에서 미들웨어를 사용하는 방법에 대해 설명합니다.

미들웨어란 무엇인가요?

Node.js에서 미들웨어는 애플리케이션 요청 객체(req), 응답 객체(res)에 접근하여 다음 미들웨어 기능으로 직접 제어권을 전달할 수 있는 기능입니다. 미들웨어 기능은 일반적으로 요청 로깅, 인증, 데이터 확인 등과 같은 특정 작업을 수행하도록 설계되었습니다.

미들웨어는 Node.js의 매우 강력한 기능 중 하나입니다.

  1. HTTP 요청 및 응답 처리 지원
  2. 요청 또는 응답 객체 수정
  3. 애플리케이션에서 특정 작업 수행
  4. 점프 설치 미들웨어 스택을 통한 다른 타사 미들웨어

미들웨어 작동 방식

미들웨어는 Node.js의 중요한 기능이며 작동 모드와 수명 주기는 매우 이해하기 쉽습니다. 간단히 말해서, HTTP 요청이 서버에 들어오면 애플리케이션의 모든 미들웨어 기능이 순차적으로 실행됩니다. 각 미들웨어 기능은 요청 및 응답 개체를 처리할 수 있으며 선택적으로 요청을 다음 미들웨어에 전달할 수 있습니다.

미들웨어의 기본 사용 형식을 살펴보겠습니다.

app.use(function (req, res, next) {
    console.log('This is a middleware function');
    next();
});

위의 예에서는 미들웨어 기능을 정의했습니다. 애플리케이션에서 이 함수를 호출하면 로그 메시지를 인쇄한 후 next() 메서드를 호출합니다. next() 메소드는 다음 미들웨어 기능(있는 경우)으로 제어를 전달합니다.

next() 메서드가 호출되지 않으면 요청이 일시 중지되고 더 이상 진행되지 않습니다. 이 경우 애플리케이션은 어떠한 응답도 보내지 않습니다. 이는 일반적으로 오류 조건이므로 미들웨어 함수를 작성할 때는 반드시 next() 메서드를 호출하세요. ㅋㅋㅋ 현재 애플리케이션의 모든 요청을 처리할 수 있습니다. 이 미들웨어는 app.use() 메서드를 통해 추가됩니다. 예를 들어 모든 요청을 기록하고 인증을 구현하는 등의 작업을 수행합니다.

let express = require('express');
let app = express();

app.use(function (req, res, next) {
   console.log('Time:', Date.now());
   next();
});

경로 수준 미들웨어

경로 수준 미들웨어는 이름에서 알 수 있듯이 현재 라우팅 요청만 처리할 수 있는 미들웨어입니다. 이 미들웨어는 Router 객체의 use() 메소드를 통해 추가됩니다. 예: 요청 확인 구현, 캐싱 구현 등

let express = require('express');
let router = express.Router();

router.use(function (req, res, next) {
   console.log('Request URL:', req.originalUrl);
   next();
});
    타사 미들웨어 사용
  1. Node.js에서는 타사 미들웨어를 사용하는 것이 일반적으로 매우 일반적입니다. 이 접근 방식을 사용하면 자체 코드를 작성하는 데 시간과 노력을 들이지 않고도 애플리케이션에 기존 기능을 추가할 수 있습니다. 다음은 매우 유명한 타사 미들웨어인 body-parser 미들웨어를 사용하는 방법입니다.
  2. let express = require('express');
    let bodyParser = require('body-parser');
    
    let app = express();
    
    // 处理 application/x-www-form-urlencoded 类型的请求体
    app.use(bodyParser.urlencoded({ extended: false }));
    
    // 处理 application/json 类型的请求体
    app.use(bodyParser.json());
  3. Summary

이번 글에서는 Node.js 미들웨어의 정의와 기능, 분류에 대해 알아보았습니다. 미들웨어는 Node.js에서 매우 중요한 개념입니다. 미들웨어를 통해 애플리케이션에 더 많은 기능과 유연성을 추가할 수 있습니다. 애플리케이션 수준 미들웨어이든 경로 수준 미들웨어이든 미들웨어 기능을 올바르게 사용하면 애플리케이션 로직을 보다 효율적으로 구현할 수 있습니다.

위 내용은 nodejs 미들웨어 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.