Express.js-app.listen与server.listen

这可能是一个非常基本的问题,但我根本不明白。使用Express.js创建应用程序和在端口1234上启动应用程序侦听之间有什么区别,例如:

var express = require('express');
var app = express();

//app.configure, app.use etc

app.listen(1234);

并添加http服务器:

var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

//app.configure, app.use etc

server.listen(1234);

有什么不同?
如果导航到http://localhost:1234,则得到相同的输出。

西门逆天猴子2020/03/17 18:02:38

仅出于守时的目的,请添添一点答案。
根据官方文件

通过快递()返回该应用程序实际上是一个JavaScript函数, DESIGNED传递到节点的HTTP服务器作为一个回调来处理请求。

这使为应用程序的HTTP和HTTPS版本提供相同的代码库变得容易,因为该应用程序不继承自这些代码(它只是一个回调):

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

所述app.listen()方法返回的http.Server对象和(对于HTTP)是一个方便的方法用于以下情况:

app.listen = function() {
  var server = http.createServer(this);
  return server.listen.apply(server, arguments);
};
小宇宙小小米亚2020/03/17 18:02:38

Express基本上是http模块的包装,它是为了使开发人员易于使用而创建的。

  1. 他们可以设置中间件以使用express轻松响应HTTP请求。
  2. 他们可以使用express将参数传递给模板,从而动态呈现HTML页面。
  3. 他们还可以使用express轻松定义路由。