📜  应用程序级中间件 (1)

📅  最后修改于: 2023-12-03 15:09:47.792000             🧑  作者: Mango

应用程序级中间件

应用程序级中间件是指在应用程序中处理HTTP请求和响应的组件。

为什么需要应用程序级中间件?

应用程序级中间件的主要目的是处理HTTP请求和响应,进行各种操作,如身份验证、日志记录、错误处理等。这使得应用程序可以更好地处理请求,并提供更好的用户体验。

应用程序级中间件的类型
内置中间件

Node.js提供了一些内置的中间件,如express.json()express.urlencoded(),用于处理来自POST、PUT和DELETE请求的消息体。

const express = require('express')
const app = express()

app.use(express.json())
app.use(express.urlencoded({ extended: true }))
第三方中间件

有许多第三方中间件可用于应用程序,如:

  • morgan:用于记录HTTP请求的中间件
  • helmet:用于增强应用程序的安全性
  • cors:用于处理跨域资源共享问题
const express = require('express')
const app = express()
const morgan = require('morgan')
const helmet = require('helmet')
const cors = require('cors')

app.use(morgan('common'))
app.use(helmet())
app.use(cors())
自定义中间件

您可以编写自己的中间件,以在应用程序中处理一些自定义操作。自定义中间件的基本结构如下:

function customMiddleware(req, res, next) {
  // 中间件操作
  next()
}

app.use(customMiddleware)
应用程序级中间件的执行顺序

当HTTP请求到达应用程序时,它会通过应用程序级中间件进行处理。应用程序级中间件的执行顺序非常重要,因为它们按照它们在应用程序中添加的顺序来执行。

app.use(middleware1)
app.use(middleware2)
app.use(middleware3)

在上面的示例中,middleware1将首先运行,然后是middleware2middleware3。如果其中一个中间件调用了next(),则它会继续将请求传递给下一个中间件。如果没有调用next(),则请求将停留在当前中间件中。如果没有中间件处理请求,则它将按照404错误进行处理。

结论

应用程序级中间件是Node.js应用程序开发中的一个重要概念。它们允许应用程序处理HTTP请求和响应,并进行各种操作,以提供更好的用户体验。内置中间件、第三方中间件和自定义中间件提供了几种方法来处理请求。应用程序级中间件的执行顺序决定了它们的处理顺序。