最近看了NodeJS的Connect框架的代码,查看文档得知Coonect的使用方法如下:
// 由API文档明显知道,可以这样调用createServer // HTTP var server = connect.createServer( connect.logger() , connect.static(__dirname + '/public') ); // HTTPS var server = connect.createServer( { key: key, cert: cert } , connect.logger() , connect.static(__dirname + '/public') ); // 或者直接: connect( connect.logger() , connect.static(__dirname + '/public') ).listen(3000);
翻看Connect的源代码得知connect.createServer函数的实现如下:
function createServer() { function app(req, res){ app.handle(req, res); } utils.merge(app, proto); app.stack = []; return app; };
继续跟踪其proto.js的实现代码,只有app.use和app.handle两个函数,并没有发现在哪里调用了...但可以很肯定connect.createServer()返回的是NodeJS核心的http lib里面的http.Server的实例。
我目前的水平就只能到这里了:)
由于暂时没有安装NodeJS的环境[ 不好意思,偶在网吧:)( ],所以请有NodeJS环境的童鞋麻烦Debug一下,能够分析一下Connect的调用过程,特别是createServer运行的过程,以及实现好的“中间件”是如何进入到connect的中间件的“大循环”里面的。
万分感谢!求NodeJS大侠出来拯救我啊!谢谢!
慕丝7291255
PIPIONE
相关分类