研究了几乎整个express connect 框架不知道能做什么。。前提 c,c++ 那部分没看过。
也是刚接触,connect里都是一些middleware,用于拦截并处理web请求,类似java servlet里的filter,典型的chain of responsibility pattern,express构建于connect之上,作路由很方便
@firstgeniusboy 没有递归啊。。。你是说回调吗,node里面回调很多,嵌套多了代码会很难看,我比较喜欢Step这个library,可以解决callback嵌套的问题。express的路由风格我倒是挺喜欢的 搭建restful webservice特别方便。我之前发过一个帖子,用node搭webservice,mvc交给前端做,你可以看一下~http://cnodejs.org/topic/50bd683e637ffa41557ce0c2
@ltebean 个人只是觉得,connect 的中间件系统 结合 express 的路由递归太多,因为本质上express 的路由也是以connect 的 use 方法实现的。包括参数的预处理 都是在同一个 递归中存在的。递归的层次太多了,大规模的并发不知道系统能不能承受得住。而且觉得路由就不是以mvc存在的,可能是我没真正开发过网站的缘故, 我觉得可以从新处理express 的路由风格。
最近也在研究connect,表示还不错!connect就是一堆中间件的集合,connect负责对这些中间件进行管理,对HTTP请求进行过滤并处理,比较接近底层。区区200多行代码,能实现这样的功能实属不易,楼主还指望connect有更丰富,完善的功能么。
1、Express的路由中间件不是强制使用的;
2、要实现所谓的“让url指定controller”其实也挺简单,比如:
app.all('/:controller/:action', function (req, res, next) {
var c = req.params.controller;
var a = req.params.action;
var m = req.method;
// 查找相应的处理程序
var fn = getControllerAction(c, a, m);
if (!fn) return next();
// 处理
fn(req, res, next);
});
@leizongmin all 的源码本质上也是路由实现的。我看了 一旦定义了all 就是为http 的所有方法都定义了一个路由(get,post,put,…)。最近在看angular js 就是前端 js mvc, 其实设计思想ajax 刚出现的时候就已经有了,只是当时缺乏成熟的理念。没想到js 现在会以井喷的方式出现。
其实我倒是觉得 更是因为有connect 这个插件做基础。刚开始看的时候没注意还以为connect是express的一部分。后来发现不是。connect 里面定义了中间件的处理方式。虽然没有完整的路由,但是开源的东西的确不缺这个。
@firstgeniusboy 对,express是基于connect, 而connect的作者也是express的作者,他的做法巧妙,你可用connect而不用express, 如你开始用express, connect已在其中,我想很多人跟我一样是先用express, 然后才认识connect的,这家伙有很多的nodejs的模块,比如Superagent, Mocha等。Express是基于Sinatra, 我从没用过Sinatra, 用的只是Java的一些Web Framework, Express开始觉得很不习惯,久了,却觉得要是Java的framework也是这样,更好,
@venngomez 我还真不是很清楚,express 跟 connect 是一个作者。我觉得做这件事起码也要一个团队吧。可能我觉得express 不舒服的原因,是只能统一定义路由,而且处理流程不好掌握吧。我倒是接触了一个基于connect 的例子,不过里面路由借用的是urlrounte 这个插件。觉得也还不错。
@firstgeniusboy 在Connect的package.json,列出的作者是TJ Holowaychuk: https://github.com/senchalabs/connect/blob/master/package.json 跟Express的第一作者是同一个人: https://github.com/visionmedia/express/blob/master/package.json 如你问些express的问题,通常得到他的快速回答。这家伙有很多原创的modules: https://github.com/visionmedia