Express中的自定义中间件功能

作者 : IT 大叔 本文共1047个字,预计阅读时间需要3分钟 发布时间: 2020-09-14

因此,上周我学习了使用Express时如何创建自定义中间件功能。中间件功能在主路由之前运行,并且可以在每个路由调用上执行,或者相反,在调用特定路由时可以执行。

Express中的中间件功能用于完成四件事:

  • 执行任何代码。
  • 更改请求和响应对象。
  • 结束请求-响应周期。
  • 调用堆栈中的下一个中间件。

Express具有大量可用的中间件功能,但是如果找不到适合您需求的中间件功能,则可以轻松地制作自己的中间件功能。但是,在此之前,我想简要介绍一下如何在Express中使用中间件功能。

那么我如何使用中间件

有三种在express中使用中间件的简单方法:

app.use(cors())
app.get('/', cors(), (req,res) =>{..Controller Function..})
app.post('/',[cors(), json, morgan('dev')], (req,res) => {..Controller Function..})

因此,请解释我上面给出的三个示例;app.use允许传入的中间件函数在每个请求之前运行,下一个示例将中间件用作路由调用中的第二个参数,然后在路由中的控制器之前调用该函数。最后一个示例传递了要在控制器之前运行的中间件功能列表。有关如何使用中间件的更多信息,您可以转到Express中间件页面。

到达重点

因此,现在您知道如何使用中间件,并且想要实现自己的中间件。好消息是,只有一件事需要学习,下一个功能。中间件功能接受三个参数:请求,响应和下一个。请求和响应与您在路由中使用的相同,因此在此不做介绍。但是,如果您不希望请求超时,则下一个参数非常重要。在中间件函数的末尾,必须调用next(),否则服务器将永远不会离开您的函数。为了说明这一点,我构建了一个简单的中间件函数,该函数记录要传递到发布路由中的数据。

const logData = (req,res, next) => {
      console.log(`Data: ${req.body}`)
      next() 
}
app.post('/data', logData, (req,res) => {
    res.send({message: 'Got the data'})
})

注意任何事情,熟悉的。中间件函数没什么特别的,它实际上是一个javascript函数,只要它以next()结尾就可以是任何您想要的东西,并且可以设置为通过使用app.use的express进行调用,也可以设置为如上所示的路由。
所以去创建一些很棒的中间件。我很乐意看到你们可以用它创造的东西。

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » Express中的自定义中间件功能

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论