如何使用nodejs作为java和前端的中间件

JavaScript022

如何使用nodejs作为java和前端的中间件,第1张

基本思路是 client <=>node (http or socket) <=>(queue) <=>JVM 要的是node的non-blocking IO的原生实现(这种代码用Java写要麻烦得多),很多JVM用来做那些需要blocking的核心工作;一般架构经验是同等硬件水平下,node的吞吐量比JVM高。

在软件领域,中间件是在应用与应用之间充当连接服务的,这并非是nodejs的概念,其他领域也会有这个概念。

举个例子,比如消息队列、数据库驱动等。

插件一般来说extra的,就是你整个系统或应用不需要插件也能正常工作,插件一般是提供一些额外功能。而且插件这个词本身代表的就是可拓展的(形象的说,可插拔)。 我个人认为 plugin/addon = extra feature

模块一般是系统的负责某一功能的一部分,不可或缺。即 module = a part of system/application

在 nodejs 里一般你在 package.json 里指定的那些package 都是 module,当然你从文件名 node_modules 也能看出来。

express官网是这么解释middleware是做什么的:

中间件(middleware)函数能够访问请求对象 (req)、响应对象 (res) 以及应用程序的请求/响应循环中的下一个中间件(middleware)函数。下一个中间件函数通常由名为 next 的变量来表示。

我们常见的middleware大概是这样的:

//这里就有刚才提到的req, res和next//next就是下一个middlewareapp.use(function (req, res, next) {  console.log('Time:', Date.now())

next()

})//卧槽,我就是上面那个里面的nextapp.use(function (req, res, next) {  console.log('I am the fucking "next" mentioned above')

next()

})

中间件函数可以执行以下任务:

执行任何代码。

对请求和响应对象进行更改。

结束请求/响应循环。

调用堆栈中的下一个中间件函数。