Node Connect 及其中间件的理念相当好
来源:互联网 发布:网络黄金egd国家认可嘛 编辑:程序博客网 时间:2024/06/06 17:49
好到有种相见恨晚的感觉,呵呵。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)
浅谈简单工作流设计——责任链模式配合策略与命令模式的实现
- Node Connect 及其中间件的理念相当好
- Node Connect 及其中间件的理念相当好
- Node 学习之Connect模块及其中间件的使用
- 理解Node.js中间件以及Connect 模块
- Node.js中的中间件与Connect
- 理解Node.js中间件以及Connect 模块
- Node中的Connect——常用中间件
- 相当好的客服管理软件
- Connect自带的中间件
- Node利用connect中间件 及bodyParser处理文件上传
- 相当好的HTML5 抛砖引玉的文章
- 相当好的Perl中文教程
- 相当好的.NET正则大全2
- 一篇关于A*的文章相当好
- 一款相当好用的VPN软件
- 相当好用的Xcode插件管理软件
- jQuery 的serialize()相当好用
- SOA的理念驱动整个中间件产业结构的调整
- 字符集
- 1.十六进制转图片jpg
- OpenStack中实现混合Hypervisor原理剖析(by quqi99)
- Linux中设置服务自启动的三种方式
- jQuery animate方法
- Node Connect 及其中间件的理念相当好
- 为什么main方法是public static void?
- ×××公司linux内核驱动开发招聘笔试题
- 八、Qt对话框设计
- 每天学点English Email(转折词的运用)
- DLL中导出函数的两种方式(dllexport与.def文件)
- C# List的几点用法
- Android 基于google Zxing实现对手机中的二维码进行扫描 学习
- 执行maven命令java内存溢出问题的解决