Express4.x中间件特性的介绍(代码示例)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Express4.x中间件特性的介绍(代码示例),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2566字,纯文字阅读大概需要4分钟。
内容图文
![Express4.x中间件特性的介绍(代码示例)](/upload/InfoBanner/zyjiaocheng/284/4f474739c7124bf896697aa3859b9c3a.jpg)
Express 应用程序基本上是一系列中间件函数调用中间件是在管道中执行的。你可以想象一个送水的真实管道。水从一端泵入,然后在到达目的地之前还会经过各种仪表和阀门。这个比喻中很重要的一部分是顺序问题,你把压力表放在阀门之前和之后的效果是不同的。同样,如果你有个向水中注入什么东西的阀门,这个阀门“下游”的所有东西都会含有这个新添加的原料。在 Express 程序中,通过调用app.use 向管道中插入中间件。
在 Express 4.0 之前,这个管道有些复杂,因为必须显式地把路由器连进来。取决于你在哪里连入路由器,路由的连入可以不按顺序来,这使得当你把中间件和路由处理器混在一起时,管道的顺序就更不清晰了。在 Express 4.0 中,中间件和路由处理器是按它们的连入顺序调用的,顺序更清晰。
路由处理器(app.get、app.post 等,经常被统称为 app.VERB)可以被看作只处理特定HTTP 谓词(GET、POST 等)的中间件。同样,也可以将中间件看作可以处理全部 HTTP谓词的路由处理器(基本上等同于 app.all,可以处理任何 HTTP 谓词;对于 PURGE 之类特别的谓词会有细微的差别,但对于普通的谓词而言,效果是一样的)。
路由处理器的第一个参数必须是路径。如果你想让某个路由匹配所有路径,只需用 /*。 中间件也可以将路径作为第一个参数,但它是可选的(如果忽略这个参数,它会匹配所 有路径,就像指定了 /* 一样)
路由处理器和中间件的参数中都有回调函数,这个函数有 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!<br>' responseText += '<small>Requested at: ' + req.requestTime + '</small>' res.send(responseText) }) app.use(requestUser) app.listen(3000)
访问 127.0.0.1:3000 输出 时间 和 //welcome 不会执行 requestUser 中间件的代码1552630945571//welcome
以上就是Express4.x中间件特性的介绍(代码示例)的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的Express4.x中间件特性的介绍(代码示例)全部内容,希望文章能够帮你解决Express4.x中间件特性的介绍(代码示例)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。