用 http.createServer 或 app = express() 调用 express 有啥区别?

Posted

技术标签:

【中文标题】用 http.createServer 或 app = express() 调用 express 有啥区别?【英文标题】:What's the difference between calling express with http.createServer or app = express()?用 http.createServer 或 app = express() 调用 express 有什么区别? 【发布时间】:2018-06-01 01:56:27 【问题描述】:

我正在学习 express,我已经看到了 2 种不同的创建服务器的方法。只是好奇这两种方法有什么区别。这是一个在大多数教程中完成的快速服务器:

var express = require('express');
var app = express();
app.listen(3000, function () 
    console.log('Example app listening on port 3000.');
);

我发现的第二种方法是使用 http 服务器。

var express = require('express');
var app = express();
var http = require('http');
var httpServer = http.createServer(app);
httpServer.listen(3000);

为什么以及何时我会使用其中一个而不是另一个?有很大的不同吗? 谢谢你

【问题讨论】:

Express.js - app.listen vs server.listen的可能重复 【参考方案1】:

差异的原因是有时您想创建多个 Express 实例来进行路由,并且应该只有其中一个在监听。然而,在最微不足道的情况下,并没有明显的区别。

请务必记住,Express 和 HTTP 服务器是两个完全不同的东西。诀窍是app.listen 会自动为你实例化一个服务器,否则你必须自己做。

【讨论】:

以上是关于用 http.createServer 或 app = express() 调用 express 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

http.createServer express.createServer有区别吗

express里http.createServer和app.listen有啥区别

NodeJS:http.createServer 和 express.createServer 之间的区别? [关闭]

Express 应用程序作为 http.createServer 的参数

用node.js搭建服务器

Node.js http.createServer 简单服务配置