使用带快递的http有什么好处

时间:2013-10-30 17:54:37

标签: node.js http express

我一直在使用Node.js express模块​​一段时间,而没有使用http模块来监听端口。

我想知道使用有什么好处:

app = express();
app.listen(app.get('port'));

app = express();
var server = http.createServer(app).listen(app.get('port'));

我的猜测是,这与设置maxSockets等http设置有关,但有没有其他原因让人这样做?

2 个答案:

答案 0 :(得分:4)

来自http://expressjs.com/api.html#app.listen

  

app.listen()方法只是一种方便的方法。

以下是listen定义:

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

请注意,它会将其参数传递给服务器的listen来电,因此您仍然可以设置maxSockets之类的http设置。

它还说,“如果您希望使用HTTPS或同时提供这两种技术,请使用上述技术。”它上面提到的技术是:

http.createServer(app).listen(80);
https.createServer(options, app).listen(443);

因此,如果您想拥有https服务器,似乎不使用app.listen的最常见原因之一就是。

我想您可能因某种原因需要引用http.createServer的返回值,在这种情况下,您不希望使用app.listen

答案 1 :(得分:3)

expressconnect之上的一个图层,它是http之上的图层。

HTTP接口API http

http API来自Node。仅提供基本的HTTP功能。

  • 联网
  • 请求,回复
  • 事件

中间件层connect

Connect是节点的中间件框架,允许您编写模块化HTTP应用程序。它提供了一堆开箱即用的中间件

  • 中间件
  • 静态中间件
  • bodyParser
  • cookieParser
  • 压缩
  • csrf等

Web应用程序框架express

Express在connect之上提供了一个额外的层,它允许你做更多的事情,并实际上用它构建真正的应用程序。最值得注意的是,它为您提供路由。

  • 路由
  • 模板引擎支持
  • 构造
  • 文件上传抽象