nodejs中间件是什么?

nodejs中间件从概念上讲是一种功能的封装方式,具体来说就是封装在程序中处理HTTP请求的功能。从实战上讲,中间件只是一个有3个参数的函数:一个请求对象、一个响应对象和一个 next 函数。


中间件介绍:

中间件是在管道中执行的。你可以想象一个送水的真实管道。水从一端泵入,然后在到达目的地之前还会经过各种仪表和阀门。这个比喻中很重要的一部分是顺序问题,你把压力表放在阀门之前和之后的效果是不同的。

同样,如果你有个向水中注入什么东西的阀门,这个阀门“下游”的所有东西都会含有这个新添加的原料。在 Express 程序中,通过调用app.use 向管道中插入中间件。

在管道的最后放一个“捕获一切”请求的处理器是常见的做法,由它来处理跟前面其他所有路由都不匹配的请求。这个中间件一般会返回状态码 404(未找到)。那么请求在管道中如何“终止”呢?

这是由传给每个中间件的 next 函数来实现的。如果不调用 next() ,请求就在那个中间件中终止了。

•  路由处理器( 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() ,一般不宜再发送响应到客户端。如果你发送了,管道中后续的中间件或路由处理器还会执行,但它们发送的任何响应都会被忽略。

node中间件:

1、中间件就是一种功能的封装方式,就是封装在程序中处理http请求的功能,

2、中间件是在管道中执行

3、中间件有一个next()函数,如果不调用next函数,请求就在这个中间件中终止了,

4、中间件和路由处理器的参数中都有回调函数,这个函数有2,3,4个参数

  • 如果有两个参数就是req和res;

  • 如果有三个参数就是req,res和next

  • 如果有四个参数就是err,req,res,next

5、如果不调用next ,管道就会终止,不会再有处理器做后续响应,应该向客户端发送一个响应

6、如果调用了next,不应该发送响应到客户端,如果发送了,则后面发送的响应都会被忽略

7、中间件的第一个参数可以是路径,如果忽略则全部都匹配

以上就是nodejs中间件是什么?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    设计电脑系统封装|电脑系统封装教程

    设计电脑系统封装|电脑系统封装教程,,电脑系统封装教程不是的,只是虚拟机比较方便。物理机也可以的,只是要通过外界启动来ghost系统。 办法

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法