为啥有些开发者使用“http”和“express”来创建服务器? [复制]

Posted

技术标签:

【中文标题】为啥有些开发者使用“http”和“express”来创建服务器? [复制]【英文标题】:Why do some developer use 'http' and 'express' to create the server? [duplicate]为什么有些开发者使用“http”和“express”来创建服务器? [复制] 【发布时间】:2016-11-05 16:24:59 【问题描述】:

尤其是这行代码:

我是 node.js 的新手,我见过的大多数教程都是通过

来初始化服务器的
var http = require('http');
var express = require('express');

app = express();

//omit

http.createServer(app).listen(1337)

如果您已经在使用express,那么您可以这样做:

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

// omit

app.listen(1337,function()

);

这两种代码结构有什么主要区别吗?

【问题讨论】:

正如一个答案所暗示的那样,您甚至不必查看代码。你只需要阅读documentation,上面写着“绑定并监听指定主机和端口上的连接。此方法与Node的http.Server.listen()相同。” 【参考方案1】:

没有有意义的区别。事实上,如果你查看app.listen() 的代码,它所做的只是执行http.createServer(),然后调用.listen()。它只是一个快捷方式,可以让您直接使用http 模块。

这是code for app.listen()

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

您的第二个代码块只是少了一点代码,因为它使用了app.listen() 快捷方式。两者都做同样的事情。

【讨论】:

这是一个你可以关闭的副本,如果你有节点徽章。

以上是关于为啥有些开发者使用“http”和“express”来创建服务器? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

用的express 4.x 想清楚cookie 发现有些清除不了 为什么

为啥 CORS 不能在我的 express/react 应用程序上运行?

URL 重写和 IIS Express:有些规则有效,有些则无效

NodeJS,Express,我为啥要使用 app.enable('trust proxy');

为啥我不能像传递其他变量一样将函数从 Express.js 传递给 EJS?

node服务端开发中express路由和http路由总结