익스프레스 미들웨어
2162 단어 webdevexpressjavascriptnode
미들웨어의 주요 역할은 요청이 Route Handler에 수신되기 전에 중간에서 요청을 처리하는 것입니다. 처리는 다음과 같은 다양한 것들과 관련될 수 있습니다.
auth token
가 있는지 확인하려면(Passcode JS는 이 용도로 널리 사용되는 미들웨어임) 이들은 기본적으로 애플리케이션의 요청-응답 수명 주기에서 요청 객체, 응답 객체 및 다음 미들웨어 기능에 액세스할 수 있는 기능입니다(다음 미들웨어 기능은 일반적으로 next라는 변수로 표시됩니다).
현재 미들웨어가 요청-응답 주기를 종료하지 않으면 next()를 호출하여 다음 미들웨어 함수에 제어를 전달해야 합니다. 그렇지 않으면 요청이 중단됩니다.
미들웨어는 요청에서 프로그래머가 요구하는 다양한 요구 사항에 따라 다양한 유형이 될 수 있습니다.
다음은 요구 사항에 따라 사용할 수 있는 몇 가지 미들웨어 유형입니다.
애플리케이션 수준 미들웨어의 예를 살펴보겠습니다.
var express = require('express')
var app = express()
app.use(function (req, res, next){
console.log('Time', Date.now())
next()
})
위의 미들웨어는 앱이 요청을 받을 때마다 실행됩니다.
경로에 미들레어 마운트:
app.use("/products/:id", function(req,res,next){
console.log('Request Type: ', req.method)
next()
})
위의 미들웨어는 "products/:id"경로에서 요청을 받을 때마다 실행됩니다.
특정 요청에 대한 경로에 마운트:
app.get("/products/:id", function(req,res,next){
res.send('product')
next()
})
위 미들웨어는 "products/:id"경로에서 GET 요청을 받을 때마다 실행됩니다.
next() 에 대해 더 자세히 살펴보겠습니다.
next()는 요청을 미리 전파하는 데 사용됩니다. next()를 호출하는 것은 매우 중요합니다. 호출되지 않으면 기본적으로 미들웨어가 아닌 라우트 핸들러입니다.
미들웨어에 대해 매우 중요한 것 중 하나는 프로그램의 순서 또는 미들웨어가 사용된 위치가 경로가 이를 효과적으로 사용하는 데 중요하다는 것입니다.
예를 들어:
app.use("/categories",categories)
app.use(middleware)
여기서 "/categories"경로의 요청은 미들웨어에 의해 처리되지 않으므로 제대로 작동하려면 미들웨어가 요청을 처리하기를 원하는 모든 경로의 맨 위에서 정의하고 사용해야 합니다.
따라서 미들웨어는 DRY 구현에 많은 도움을 제공하고 서버의 부하를 줄이기 위해 더 큰 이점으로 사용될 수 있습니다.
Reference
이 문제에 관하여(익스프레스 미들웨어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shasheeshpurohit/express-middlewares-1lc0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)