0

0

Express4.x中间件特性的介绍(代码示例)

不言

不言

发布时间:2019-03-16 10:57:24

|

2415人浏览过

|

来源于segmentfault

转载

本篇文章给大家带来的内容是关于Express4.x中间件特性的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

Express 应用程序基本上是一系列中间件函数调用中间件是在管道中执行的。你可以想象一个送水的真实管道。水从一端泵入,然后在到达目的地之前还会经过各种仪表和阀门。这个比喻中很重要的一部分是顺序问题,你把压力表放在阀门之前和之后的效果是不同的。同样,如果你有个向水中注入什么东西的阀门,这个阀门“下游”的所有东西都会含有这个新添加的原料。在 Express 程序中,通过调用app.use 向管道中插入中间件。

在 Express 4.0 之前,这个管道有些复杂,因为必须显式地把路由器连进来。取决于你在哪里连入路由器,路由的连入可以不按顺序来,这使得当你把中间件和路由处理器混在一起时,管道的顺序就更不清晰了。在 Express 4.0 中,中间件和路由处理器是按它们的连入顺序调用的,顺序更清晰。

路由处理器(app.get、app.post 等,经常被统称为 app.VERB)可以被看作只处理特定HTTP 谓词(GET、POST 等)的中间件。同样,也可以将中间件看作可以处理全部 HTTP谓词的路由处理器(基本上等同于 app.all,可以处理任何 HTTP 谓词;对于 PURGE 之类特别的谓词会有细微的差别,但对于普通的谓词而言,效果是一样的)。

路由处理器的第一个参数必须是路径。如果你想让某个路由匹配所有路径,只需用 /*。 中间件也可以将路径作为第一个参数,但它是可选的(如果忽略这个参数,它会匹配所 有路径,就像指定了 /* 一样)

台讯电子企业网站管理系统  简繁全功能版
台讯电子企业网站管理系统 简繁全功能版

超级适合代理建设企业站点的企业源码,超方面实用!程序说明: 1.特色:简繁中文切换、产品展示系统、新闻发布系统、会员管理系统、留言本计数器、网站信息统计、强大后台操作 功能等; 2.页面包括:首页、企业介绍、滚动公告通知发布系统、企业新闻系统、产品展示系统、企业案例发布展示系 统、企业招聘信息发布系统、信息资源下载系统、在线定单系统、在线客服系统、在线留言本系统、网站调查投票系统、友情连接系统、会

下载

路由处理器和中间件的参数中都有回调函数,这个函数有 2 个、3 个或 4 个参数(从技术上讲也可以有 0 或 1 个参数,但这些形式没有意义)。如果有 2 个或 3 个参数,头两个参数是请求和响应对象,第三个参数是 next 函数。如果有 4 个参数,它就变成了错误处理中间件,第一个参数变成了错误对象,然后依次是请求、响应和 next 对象。如果不调用 next(),管道就会被终止,也不会再有处理器或中间件做后续处理。

如果你不调用 next(),则应该发送一个响应到客户端(res.send、res.json、res.render 等); 如果你不这样做,客户端会被挂起并最终导致超时。如果调用了 next(),一般不宜再发送响应到客户端。如果你发送了,管道中后续的中间件或路由处理器还会执行,但它们发送的任何响应都会被忽略。

var express = require('express')
var app = express()

var requestTime = function (req, res, next) {
  req.requestTime = Date.now()
  console.log(req.requestTime );
  next()
}
var requestUser = function (req, res, next) {
  console.log('welcome');
  next()
}

app.use(requestTime)
app.get('/', function (req, res) {
  console.log('//welcome');
  var responseText = 'Hello World!
' responseText += 'Requested at: ' + req.requestTime + '' res.send(responseText) }) app.use(requestUser) app.listen(3000)

访问 127.0.0.1:3000 输出 时间 和 //welcome 不会执行 requestUser  中间件的代码1552630945571//welcome

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.3万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

Node.js-前端工程化必学
Node.js-前端工程化必学

共19课时 | 3万人学习

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

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