繁体   English   中英

express和http之间的技术差异是什么,连接就是这个问题

[英]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)

Expresshttp之上的另一层。 它负责Web应用程序所需的基本重复任务。 connect是一个中间件,它也负责Web应用程序所需的基本重复任务。

使用任何框架背后的整个想法是保持干燥 ,不要重复自己。 每个Web应用程序都非常需要解析请求主体解析cookie等任务。 Express 默认提供它们。

在Express 4.x中,大部分已经被重构为几个粒度模块,如body-parsermorgan等。可以直接使用它们而不使用express。 有关完整的模块集,请参阅Express - GitHub

Expresshttp之上的另一层,意味着Express内部使用http 换句话说,它是http的包装器。 如果你看一下Express的源代码,你会发现它在内部使用http 请参阅https://github.com/strongloop/express/blob/master/lib/application.js#L540-543上突出显示的声明

让我们举一个例子来理解http模块和express模块之间的区别。

例如, http模块是一辆汽车,即一辆普通的商用汽车。

另一方面,考虑express为超级跑车。

请参阅, http模块提供各种工具(功能)来做网络的事情,如制作servercilent等。

express是建立在http模块顶部的地方,有一些更实用,更好的功能,比如简单的方法来处理routes ,简单的方法来制作firmware, servers, client等。

就像普通汽车和超级汽车(可能是豪华车)之间的区别一样。它们都是一天结束时的汽车,但功能更多的是豪华车,易于使用,就像在express.js

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM