Express.js是針對Node.js的應用框架(framework),建構在Node.js之上,其主要目的是為了對Node.js架設的後端伺服器簡化程式碼並且增加開發速度 (這就是為何Express叫做Express) 。要使用Express,我們只需要在work directory中做:
*npm install express*
可以透過nodemon app.js
/ node app.js
執行以下程式碼,會看到以下結果
//app.js
const express = require("express");
const app = express(); // 執行express這個函式,會回傳一個物件,我們把物件命名為app
const port = 3000;
// HTTP request GET POST ...
app.get("/", (req, res) => {
res.send("歡迎來到網站首頁!");
});
app.get("/another", (req, res) => {
res.send("歡迎來到別頁!");
});
app.get("/ex", (req, res) => {
res.send("<h1>這是一個H1標籤</h1>");
});
app.listen(port, () => {
console.log(`伺服器正在聆聽 port ${port}`);
});
Framework 與 Library是兩個開發者常用的詞彙。兩者並沒有學術上的定義,但基本的區別是: 使用 Library 就像從頭開始建造你的家。房子可以按照你喜歡的任何風格建造,房間可以按照你喜歡的方式佈置和裝飾。另一方面, Framework就像買新房一樣。房子已經建好了,所以你不用擔心建築問題,但你不能選擇房子的格局以及房間的佈置方式。 在Library當中通常會提供許多的功能,開發者可以自行選擇所需的部分取用,例如:Bootstrap是HTML, CSS的Library。jQuery是JavaScript的Library。另一方面,Flask是Python的web framework,開發者必須要依照Flask的規則架構進行開發,沒有自行選擇架構的自由。
HTTP協議中,客戶端可以向伺服器發出請求(request)。常見的請求method分成以下幾種:
我們在瀏覽器中輸入網址,請求網頁,都是在向伺服器發出GET request。當我們登入某個網頁時,則是發出POST request。發出GET request時,額外的資訊會被放在URL的後面,用?當作與端點的分隔符號, &為多個資訊間的分隔符號。發出POST request時,額外資訊則會被藏起來。
例如,在Google上搜尋panda,網址會變成: https://www.google.com/search?q=panda&oq=what&aqs=chrome..69i57j69i59l3j35i19i39j69i60l3.1158j0j7&sourceid=chrome&ie=UTF-8