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