在學會之前還蠻好奇的。
簡述
在 Apache 的流程是長這樣:
在 Express 的流程是長這樣:
首先最大的差別是 Express 具備「路由」的能力
1 | app.get('/', ...) |
而 PHP + Apache 的特性很明顯,就是預設只會由「檔案路徑」來回應 resposne。
1 | 請求 http://localhost/hello.php |
簡單來說就是一種「檔案系統」的感覺,你到打開什麼檔案就回傳什麼。
但 Express 沒有這種東西,可以想成它本身就具備產生結果的能力,不用再透過「 PHP 執行檔案」。
總之,你不會在 Express 看到這種東西:
1 | app.get('/hello.js', ...) |
我想要什麼路由直接寫就好,也不用再開一大堆檔案來處理每個 request,這就是 Express 的強大之處。
總結來說,Express 就是一個能根據「路徑」和「HTTP Method」決定要回傳什麼內容的 Server。
不過為什麼 Express 可以做到這件事?是因為有個叫做「Middleware」的東西,這個之後會在解釋。