Express.js 中间件

收藏457

阅读7465

更新时间2025-08-28

Express.js中间件

什么是中间件?

中间件是一种可以访问请求和响应对象的功能,也可以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对象的所有属性和方法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)

Express.js中间件示例

在此示例中,我们将定义一个名为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 nhooo') 
 }) 
 
// 启动服务器
var server = app.listen(8000, function(){ 
    console.log('Listening on port 8000...') 
 })

启动此应用程序,然后在浏览器中单击以下URL。

  • http://localhost:8000/

  • http://localhost:8000/hello-page/

输出将是

对于监听8000的应用程序的每个请求,我们都附加了一个中间件功能。对于url http://localhost:8000/,URL为/ ,因此logger的输出为当前时间和'/'。对于url同样如此'/hello-page/'。

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号