Node Connect 及其中间件的理念相当好

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 好到有种相见恨晚的感觉,呵呵。Connect 所谓的中间件思想,可谓不新鲜。但是于 Node 上面使用,却是第一个吃螃蟹的人,以致今日,有为数不少的第三方中间件。套一句俗话,充分利用好这些中间件,能让你的工作事半功倍,呵呵。

好到有种相见恨晚的感觉,呵呵。Connect 所谓的中间件思想,可谓不新鲜。但是于 Node 上面使用,却是第一个吃螃蟹的人,以致今日,有为数不少的第三方中间件。套一句俗话,充分利用好这些中间件,能让你的工作事半功倍,呵呵。

这种中间件思想,简直就是抓住了 Web Server 七尺之喉,把关 Request / Response,既清晰又灵活,好处十分明显。Connect 约定一种规范,把所有参与进来的中间件构成一个队列,中间件之间的执行遵循 Connect 约定的接口。这样的流程最后,必定是 Response.end() 的。也就是说最终输出有且只有一个。当然“最终输出”也不一定放在最后的,如日志到文件则可以放在 Response.end() 之后。我跟大家说的,就是一个流程的意思、一道工序的意思。所以,你把要使用的中间件放在队列的哪个位置,就有所考究了。在前面的可能因为某些条件限制了后面的执行。

var app = connect()
.use(connect.logger('dev'))
.use(function(req, res){
     res.end('dsds');
})
.use('/xxx', function(request, response){
     .../xxx 永远不会执行……
});
不过值得一提的是,Connect 的中间件队列与所谓的异步、同步执行无关。异步/同步取决于你逻辑的封装如何。有异步的,那 Connect 的中间件必然异步执行。当然,从轮廓上说,Connect 的链式调用像同步的方式。

我感兴趣的 Connect 或者说打算从 Connect 的功能: Session 和其他的相关第三方组件。其实这些功能组件凭自己写也不是难事,至少 ASP JScrpt 我写过相当部分~不过就是花时间啦。

跟 Connect 还有点渊源的就是这位仁兄出自 Sencha L.L.C 的,Ext JS 粉在此膜拜~

说到 Connect 就不得不提下面相关资源:《Connect模块解析(之一)》《Connect模块解析(之二)静态文件中间件》、《connect源码分析--基础架构》。

用法:

像 asp/php/jsp 这样的则属于动态网页,查询数据和调用 EJS 渲染模板,否则,将是调用静态服务器:

var siteRoot = 'C:/project/yueyun/root';
connect.static(siteRoot)(request, response, function(){});

P.S: Node-sqlite3 win下面终于带驱动包了,不用自己编译~适合我此等的小白。直接下:http://cl.ly/0w1B023C3w0Y NPM 新版可解决此难题


原来这种中间件的理念就是 Pipeline!详见:

浅谈管道模型(Pipeline)

浅谈简单工作流设计——责任链模式配合策略与命令模式的实现

目录
相关文章
|
3月前
|
中间件
|
7月前
|
JSON JavaScript 中间件
node.js中Express框架路由,中间件
node.js中Express框架路由,中间件
|
3月前
|
JavaScript 前端开发 中间件
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
114 0
|
8月前
|
JavaScript 中间件
Node.js学习笔记----中间件的分类
Node.js学习笔记----中间件的分类
|
8月前
|
JavaScript 中间件
Node.js学习笔记----中间件
Node.js学习笔记----中间件
|
JSON JavaScript 中间件
【node.js从入门到精通】使用express创建web服务器,路由,进行中间件的创建链接路由及其他中间件
【node.js从入门到精通】使用express创建web服务器,路由,进行中间件的创建链接路由及其他中间件
199 1
【node.js从入门到精通】使用express创建web服务器,路由,进行中间件的创建链接路由及其他中间件
|
10月前
|
JavaScript NoSQL 中间件
【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
101 0
|
存储 负载均衡 JavaScript
Node(二)——中间件,Cookie,multer
中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)),响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。 🧨中间件的功能: 执行任何代码。 修改请求和响应对象。 终结请求-响应循环。 调用堆栈中的下一个中间件。
97 1
Node(二)——中间件,Cookie,multer
|
中间件
node生成带logo的二维码的中间件
node生成带logo的二维码的中间件
node生成带logo的二维码的中间件
|
搜索推荐 中间件
node实现代理的中间件
node实现代理的中间件
node实现代理的中间件