为啥有些开发者使用“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');