Node Express 미들웨어 학습 및 채팅

青灯夜游
풀어 주다: 2021-11-26 19:23:20
앞으로
2354명이 탐색했습니다.

이 기사에서는 node의 Express 미들웨어에 대해 설명하고 개념과 미들웨어 분류를 소개하겠습니다.

Node Express 미들웨어 학습 및 채팅

Express는 Node.js캡슐화를 기반으로 하는 상위 계층 서비스 프레임워크로서 완전한 기능의 웹 애플리케이션을 신속하게 구축하는 데 사용할 수 있는 간단하고 유연한 웹 애플리케이션 개발 프레임워크입니다. 미들웨어라우팅을 통해 애플리케이션 구성 및 관리가 더 쉬워집니다.

미들웨어

middleware의 개념은 요청 처리 기능을 여러 하위 처리 기능으로 모듈화하여 미들웨어

middleware

를 구성할 수 있다는 것입니다. 애플리케이션의 응답 주기에서 요청 객체 req, 응답 객체 res 및 next() 함수에 액세스할 수 있습니다. next() 함수는 현재 미들웨어가 요청을 종료하지 않는 경우 주로 다음 미들웨어로 제어를 전달하는 역할을 합니다. next()가 호출되지 않으면 요청이 일시 중단되고 나중에 정의된 미들웨어가 실행되지 않습니다. ,

middleware

의 실행 순서는 위에서 아래로 등록 순서를 엄격하게 따릅니다.

Middleware

다음 작업을 수행할 수 있는 기능:

모든 코드 실행
  • 요청 및 응답 개체 수정
  • 요청-응답 주기 종료
  • 스택에서 다음 미들웨어 호출
middleware

의 주요 목적은 로그인 상태 확인, 요청 로그, 오류 처리, 쿠키 등과 같은 특정 작업을 완료하기 위해 HTTP 요청을 처리하는 것입니다.

Node Express 미들웨어 학습 및 채팅미들웨어 분류

1 애플리케이션 수준 미들웨어

app.use() 함수를 사용하여 애플리케이션 수준 미들웨어를 애플리케이션 객체 인스턴스에 바인딩

const app = express();
/*表示匹配任何路由*/
app.use(function(req,res,next){
    console.log('请求时间:' +  Date.now());
    /*表示匹配完成这个中间件就继续往下执行。*/
    next()
})
로그인 후 복사

2 라우팅 수준 미들웨어

Route -레벨 미들웨어는 라우터 인스턴스에 바인딩된다는 점을 제외하면 애플리케이션 수준 미들웨어와 동일하게 작동합니다

import express from 'express';

const app = express();

const router = express.router();

router.use(
  '/user',
  function (req, res, next) {
    console.log(1);
    next();
  },
  function (req, res, next) {
    console.log(2);
    next();
  },
  function (rex, res, next) {
    console.log(3);
    next();
  }
);
로그인 후 복사

3 오류 처리 미들웨어

오류 처리 미들웨어에는 항상 4개의 매개변수가 필요하며 오류로 식별하려면 4개의 매개변수를 제공해야 합니다. 미들웨어 기능을 처리합니다. 다음 함수가 필요하지 않더라도 지정해야 합니다. 그렇지 않으면 다음 함수는 일반 미들웨어로 해석되어 오류를 처리할 수 없습니다.

app.use(function(err, req, res, next){
    console.log(err.stack);
    res.status(500).send(err);
})
로그인 후 복사

4 내장 미들웨어

Express에는 다음과 같은 내장 미들웨어가 있습니다.

express.static: 정적 리소스 서비스 제공
  • express .router: 라우팅 서비스 제공
5 타사 미들웨어

body-parser, cookie-parser 등의 타사 미들웨어

6 Custom 미들웨어

Custom 미들웨어는 함수로 정의됩니다. , req ,res,next 매개변수를 수락하고 app.use()를 사용하여 미들웨어를 등록하세요.

function log(req,res,next) {
    req.requestTime = Date.now();
    next()
}
// 注册自定义中间件
app.use(log);
로그인 후 복사
// 自定义可配置中间件
function log(options) {
    return function (req,res,next) {
        // 根据options实现中间件功能
        next
    }
}
로그인 후 복사

노드 관련 지식을 더 보려면

nodejs 튜토리얼

을 방문하세요! !

위 내용은 Node Express 미들웨어 학습 및 채팅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿