[英]what's the technical difference between express and http, and connect for that matter
var express = require("express")
, app = express()
, http = require("http").createServer(app)
我经常看到这些依赖于它们。 从我的理解,http主机前端html? 和express保存服务器端的nodejs逻辑? 和connect是express的基础层,所以也是服务器端模块?
如果不是这样的话,人们就不会这样做
express().listen(8080)
代替
require("http").createServer(express()).listen(8080)
Express
是http
之上的另一层。 它负责Web应用程序所需的基本重复任务。 connect
是一个中间件,它也负责Web应用程序所需的基本重复任务。
使用任何框架背后的整个想法是保持干燥 ,不要重复自己。 每个Web应用程序都非常需要解析请求主体 , 解析cookie等任务。 Express
默认提供它们。
在Express 4.x中,大部分已经被重构为几个粒度模块,如body-parser
, morgan
等。可以直接使用它们而不使用express。 有关完整的模块集,请参阅Express - GitHub 。
Express
是http
之上的另一层,意味着Express
内部使用http
。 换句话说,它是http
的包装器。 如果你看一下Express
的源代码,你会发现它在内部使用http
。 请参阅https://github.com/strongloop/express/blob/master/lib/application.js#L540-543上突出显示的声明
让我们举一个例子来理解http
模块和express
模块之间的区别。
例如, http
模块是一辆汽车,即一辆普通的商用汽车。
另一方面,考虑express
为超级跑车。
请参阅, http
模块提供各种工具(功能)来做网络的事情,如制作server
, cilent
等。
express
是建立在http
模块顶部的地方,有一些更实用,更好的功能,比如简单的方法来处理routes
,简单的方法来制作firmware, servers, client
等。
就像普通汽车和超级汽车(可能是豪华车)之间的区别一样。它们都是一天结束时的汽车,但功能更多的是豪华车,易于使用,就像在express.js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.