English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
중간 처리 기능은 요청과 응답 객체에 접근할 수 있는 기능이며, next는 애플리케이션의 요청에서도 사용할 수 있습니다.-응답 주기에서 사용하는 기능.
이 튜토리얼에서는 Node.js Express 애플리케이션에서 중간 처리 기능 함수를 정의하고, 중간 처리 기능 함수를 호출하는 방법을 배웁니다.
request – 클라이언트가 HTTP 요청(예: PUT, GET 등)을 보낼 때 Express 애플리케이션에 도착하는 HTTP 요청입니다. 쿼리 문자열, URL 파라미터, 헤더 등의 속성을 포함합니다.
response– 객체는 Express 애플리케이션이 HTTP 요청을 받았을 때 보내는 HTTP 응답을 나타냅니다.
next – next는 다음 중간 처리 기능 스택의 다음 중간 처리 기능을 계속합니다.
request-response cycle(요청-응답 주기) – 요청이 Express 애플리케이션에 들어오기 시작하고, 응답이 애플리케이션을 떠나 요청을 위해 처리될 때까지 실행되는 작업 주기.
중간 처리 기능 스택– 요청에서-응답 주기를 통해 실행되는 중간 처리 기능 스택.
중간 처리 기능 정의에서 이미 언급했듯이, 요청, 응답 객체 및 다음 기능에 접근할 수 있습니다.
JavaScript 함수의 문법과 동일합니다. 요청, 응답 객체, 다음 함수를 파라미터로 받습니다.
function logger(req, res, next) { }
여기 logger는 함수 이름이며, req는 HTTP 요청 객체이고, res는 노드 응답 객체이며, next는 요청입니다.-응답 주기의 다음 함수
또한, request object의 모든 속성과 메서드 req에 접근할 수 있습니다.
또한, response object의 모든 속성과 메서드 res에 접근할 수 있습니다.
next() 미들웨어 함수 내부의 호출 함수는 선택 사항입니다. next() 문을 사용하면 요청에서-응답 주기에서 다음 미들웨어 기능을 실행합니다. next() 함수를 호출하지 않으면, 주어진 요청의 실행이 여기에서 중단됩니다.
function logger(req, res, next) { // 귀하의 코드 next() // 중간웨어 스택에서 다음 함수 호출 }
Express 애플리케이션에서는 use 함수를 통해应用程序 객체에 중간웨어를 호출할 수 있습니다.
var express = require('express') var app = express() function logger(req, res, next) { // 귀하의 코드 next() } app.use(logger)
이 예제에서는 logger라는 미들웨어를 정의하겠습니다. 이 미들웨어는 현재 시간과 쿼리 문자열을 콘솔에 기록합니다.
app.js
var express = require('express') var app = express() // 중간웹 서버 기능 정의 function logger(req, res, next) { console.log(new Date(), req.url) next() } // 각 요청에 대해-응답 주기를 통해 logger middleware를 호출 app.use(logger) // 위치“ /”실행하는 루트 app.get('/', function(req, res) { res.send('This is a basic Example for Express.js by w3codebox') ) // 서버 시작 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') )
이 애플리케이션을 시작한 후, 브라우저에서 다음 URL을 클릭하세요。
http://localhost:8000/
http://localhost:8000/헬로-페이지/
출력은 다음과 같습니다
리스닝에 대해서8000의 모든应用程序의 각 요청에 대해, 우리는 중간웹 서버 기능을 추가했습니다. url http://localhost:8000/URL은/ 따라서 logger의 출력은 현재 시간과 '/URL에 대해서도 마찬가지입니다'。/헬로-페이지/。