中间件的本质是一类软件,它处在客户机服务器的操作系统之上,但是它处在用户软件之下。它的用处就是给用户的应用软件提供运行或者开发环境,使用户可以灵活高效的在不同技术之间共享资源。
中间件出现的起因:
在软件研发过程中面临的主要问题有四个方面,分别是质量问题、
效率问题、互操作问题、灵活应变问题。而引起这些问题的主要原因是异构性和范围规范的滞后。
计算机软硬件之间的不同,会导致软件在不同平台或系统移植困难,无法运行等问题。还有因为网络协议和通信机制的不同,这些系统之间不能有效的集成。
造成互操作性不好的原因主要是标准的滞后,通过提供统一的标准,解决互操作问题也是中间件的作用之一。
并且随着软件应用领域日益壮大,很多应用系统之间的基础是相似的,如果每次开发都从0开始,无疑是浪费精力的行为,这个时候通过中间件,获取简单相似的功能或环境,实现了代码的复用,也提高了效率。
中间件的特点:
1、满足大量应用的需要;
2、运行于多种硬件和OS平台;
3、支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互;
4、支持标准的协议;
5、支持标准的接口。
中间件的好处:
由于标准接口对于可移植性、标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件就几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
中间件的功能:
1、执行任何代码。
2、更改请求和响应对象。
3、中止请求 - 响应循环。
4、调用堆栈中的下一个中间件函数。
注:如果当前的中间件函数没有结束请求 - 响应周期,则必须调用next()以将控制传递给下一个中间件函数。否则,请求将被挂起。
Express可以使用的中间件:
1、应用程序级中间件
2、路由器级中间件
3、错误处理中间件
4、内置中间件
5、第三方中间件