节点http和表示听差

我是新来的节点和expression。 我遇到了两种创build快速应用程序的方法,它们监听一个特定的TCP端口,据我所知,它可以得到相同的结果。 有人可以为这些差异说明一下,如果有的话…这是function

方法1 – 仅使用快递模块:

var express = require('express'); var port = 8080; var app = express(); app.set('port', port); ... // different listen method app.listen(app.get('port'), function(){ console.log('now listening on port ' + app.get('port')); }); 

方法2 – 使用express和http模块:

 var http = require('http'), express = require('express'); var port = 8080; var app = express(); app.set('port', port); ... // different listen method http.createServer(app).listen(app.get('port'), function(){ console.log('now listening on port ' + app.get('port')); }); 

在快速源代码中app.listen的定义: https : //github.com/visionmedia/express/blob/9e6b881f8566f26f2d2ea017657455ec7c674ad6/lib/application.js#L524-L548

 app.listen = function(){ var server = http.createServer(this); return server.listen.apply(server, arguments); }; 

这只是一个方便的方法,用于完成上面“方法2”中定义的内容。 ( 如果需要复习,以下是apply()工作原理 。)

所以,他们做同样的事情:)