Express 和 Apache 的差別

在學會之前還蠻好奇的。

簡述

在 Apache 的流程是長這樣:

apache

在 Express 的流程是長這樣:

express

首先最大的差別是 Express 具備「路由」的能力

1
2
3
4
5
app.get('/', ...)
app.post('/', ...)
app.delete('/', ...)
app.patch('/', ...)
...

而 PHP + Apache 的特性很明顯,就是預設只會由「檔案路徑」來回應 resposne。

1
2
3
請求 http://localhost/hello.php
Apache 叫 PHP 去執行 hello.php
Apache 再把執行結果傳回去

簡單來說就是一種「檔案系統」的感覺,你到打開什麼檔案就回傳什麼。

但 Express 沒有這種東西,可以想成它本身就具備產生結果的能力,不用再透過「 PHP 執行檔案」。

總之,你不會在 Express 看到這種東西:

1
2
3
4
app.get('/hello.js', ...)
app.post('/bye.js', ...)
app.delete('/index.js', ...)
app.patch('/about.js', ...)

我想要什麼路由直接寫就好,也不用再開一大堆檔案來處理每個 request,這就是 Express 的強大之處。

總結來說,Express 就是一個能根據「路徑」和「HTTP Method」決定要回傳什麼內容的 Server。

不過為什麼 Express 可以做到這件事?是因為有個叫做「Middleware」的東西,這個之後會在解釋。

MVC 架構與基本範例 mentor-program-day101
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×