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

来源:互联网 发布:数据结构与算法 云盘 编辑:程序博客网 时间:2024/06/14 02:49
 

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

分类: 服务端JavaScript(node) 780人阅读 评论(0) 收藏 举报

目录(?)[+]

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

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

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var app = connect()  
  2. .use(connect.logger('dev'))  
  3. .use(function(req, res){  
  4.      res.end('dsds');  
  5. })  
  6. .use('/xxx'function(request, response){  
  7.      .../xxx 永远不会执行……  
  8. });  
不过值得一提的是,Connect 的中间件队列与所谓的异步、同步执行无关。异步/同步取决于你逻辑的封装如何。有异步的,那 Connect 的中间件必然异步执行。当然,从轮廓上说,Connect 的链式调用像同步的方式。

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

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

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

用法:

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

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var siteRoot = 'C:/project/yueyun/root';  
  2. connect.static(siteRoot)(request, response, function(){});  

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


0 0
原创粉丝点击