Express
目錄
Express
九、初識Express
9.1 Express簡介
1. 什么是 Express
2. 進一步理解Express
3. Express能做什么
9.2 Express的基本使用
1. 安裝
2. 創建基本的Web服務器
3. 監聽GET請求
4. 監聽POST請求
5. 把內容響應給客戶端
6. 獲取URL中攜帶的查詢參數
7. 獲取URL中的動態參數
9.3 托管靜態資源
1. express.static()
2. 托管多個靜態資源目錄
3. 掛載路徑前綴
9.4 nodemon
1. 為什么要使用nodemon
2. 安裝nodemon
3. 使用nodemon
十、Express路由
10.1 路由的概念
1. 什么是路由
2. 現實生活中的路由
3. Express中的路由
4. Express中的路由的例子
5. 路由的匹配過程
10.2 路由的使用
1. 最簡單的用法
2. 模塊化路由
3. 創建路由模塊
4. 注冊路由模塊
5. 為路由模塊添加前綴
十一、Express中間件
11.1 中間件的概念
1. 什么是中間件
2. 現實生活的例子
3. Express中間件的調用流程
4. Express中間件的格式
5. next函數的作用
11.2 Express中間件的初體驗
1. 定義中間件函數
2. 全局生效的中間件
3. 定義全局中間件的簡化形式
4. 中間件的作用
5. 定義多個全局中間件
6. 局部生效的中間件
7. 定義多個局部中間件
8. 了解中間件的5個使用注意事項
11.3 中間件的分類
1. 應用級別的中間件
2. 路由級別的中間件
3. 錯誤級別的中間件
4. Express內置的中間件
5. 第三方的中間件
11.4 自定義中間件
1. 需求描述與實現步驟
2. 定義中間件
3. 監聽req的data事件
4. 監聽req的end事件
5. 使用querystring模塊解析請求體數據
6. 將解析出來的數據對象掛載為req.body
7. 將自定義中間件封裝為模塊
十二、使用Express寫接口
12.1 創建基本的服務器
12.2 創建API路由模塊
12.3 編寫GET接口
12.4 編寫POST接口
12.5 CORS跨域資源共享
1. 接口的跨域問題
2. 使用cors中間件解決跨域問題
3. 什么是CORS
4. CORS的注意事項
5. CORS響應頭部- Access-Control-Allow-Origin
6. CORS響應頭部 - Access-Control-Allow-Headers
7. CORS響應頭部- Access-Control-Allow-Methods
8. CORS請求的分類
9. 簡單請求
10. 預檢請求
11. 簡單請求和預檢請求的區別
12.6 JSONP接口
1. 回顧JSONP的概念與特點
2. 創建JSONP接口的注意事項
3. 實現JSONP接口的步驟
4. 實現JSONP接口的具體代碼
5. 在網頁中使用jQuery發起JSONP請求
九、初識Express
9.1 Express簡介
1. 什么是 Express
官方給出的概念:Express 是基于Node.js平臺,快速、開放、極簡的Web開發框架。
通俗的理解:Express 的作用和Node.js內置的http模塊類似,是專門用來創建Web服務器的。
Express的本質:就是一個npm上的第三方包,提供了快速創建Web服務器的便捷方法。
Express的中文官網:http://www.expressjs.com.cn/
2. 進一步理解Express
思考:不使用Express能否創建Web服務器?
答案:能,使用Node.js提供的原生http模塊即可。
思考:既生瑜何生亮(有了http內置模塊,為什么還有用Express) ?
答案:http內置模塊用起來很復雜,開發效率低;Express 是基于內置的http模塊進一步封裝出來的, 能夠極大的提高開發效率。
思考:http內置模塊與Express是什么關系?
答案:類似于瀏覽器中Web API和jQuery的關系。后者是基于前者進一步封裝出來的。
3. Express能做什么
對于前端程序員來說,最常見的兩種服務器,分別是:
- Web 網站服務器:專門對外提供Web網頁資源的服務器。
- API 接口服務器:專[ ]對外提供API接口的服務器。
使用Express,我們可以方便、快速的創建Web網站的服務器或API接口的服務器。
9.2 Express的基本使用
1. 安裝
在項目所處的目錄中,運行如下的終端命令,即可將 express 安裝到項目中使用:
2. 創建基本的Web服務器
3. 監聽GET請求
通過app.get()方法,可以監聽客戶端的GET請求,具體的語法格式如下:
4. 監聽POST請求
通過app.post()方法,可以監聽客戶端的POST請求,具體的語法格式如下:
5. 把內容響應給客戶端
通過res.send()方法,可以把處理好的內容,發送給客戶端:
6. 獲取URL中攜帶的查詢參數
通過req.query對象,可以訪問到客戶端通過查詢字符串的形式,發送到服務器的參數:
7. 獲取URL中的動態參數
通過 req.params 對象,可以訪問到URL中,通過 : 匹配到的動態參數:
9.3 托管靜態資源
1. express.static()
express提供了一個非常好用的函數,叫做express static(),通過它,我們可以非常方便地創建一個靜態資源服務器,例如,通過如下代碼就可以將public目錄下的圖片、CSS文件、JavaScript 文件對外開放訪問了:
現在,你就可以訪問public目錄中的所有文件了:
http://localhost:3000/images/bg.jpg
http://localhost:3000/css/ style.css
http://localhost:3000/js/login.js
注意:Express 在指定的靜態目錄中查找文件,并對外提供資源的訪問路徑。因此,存放靜態文件的目錄名不會出現在URL中。
2. 托管多個靜態資源目錄
如果要托管多個靜態資源目錄,請多次調用express.static() 函數:
訪問靜態資源文件時,express.static() 函數會根據目錄的添加順序查找所需的文件。如果第一個文件夾找到了,則不會找第二個文件夾。
3. 掛載路徑前綴
如果希望在托管的靜態資源訪問路徑之前,掛載路徑前綴,則可以使用如下的方式:
現在,你就可以通過帶有 /public 前綴地址來訪問public目錄中的文件了:
http://localhost:3000/public/images/kitten.jpg
http://localhost:3000/public/css/style.css
http://localhost:3000/public/js/app.js
9.4 nodemon
1. 為什么要使用nodemon
在編寫調試Node.js項目的時候,如果修改了項目的代碼,則需要頻繁的手動close掉,然后再重新啟動,非常繁瑣。
現在,我們可以使用nodemon (https://www.npmjs.com/package/nodemon) 這個工具,它能夠監聽項目文件的變動,當代碼被修改后,nodemon會自動幫我們重啟項目,極大方便了開發和調試。
2. 安裝nodemon
在終端中,運行如下命令,即可將nodemon安裝為全局可用的工具:
3. 使用nodemon
當基于 Node.js 編寫了一個網站應用的時候,傳統的方式,是運行 node app.js 命令,來啟動項目。這樣做的壞處是:代碼被修改之后,需要手動重啟項目。
現在,我們可以將node命令替換為 nodemon 命令,使用 nodemon app.js 來啟動項目。這樣做的好處是:代碼被修改之后,會被nodemon監聽到,從而實現自動重啟項目的效果。
十、Express路由
10.1 路由的概念
1. 什么是路由
廣義上來講,路由就是映射關系。
2. 現實生活中的路由
在這里,路由是按鍵與服務之間的映射關系
3. Express中的路由
在Express中,路由指的是客戶端的請求與服務器處理函數之間的映射關系。
Express中的路由分3部分組成,分別是請求的類型、請求的URL地址、處理函數,格式如下:
4. Express中的路由的例子
5. 路由的匹配過程
每當一個請求到達服務器之后,需要先經過路由的匹配,只有匹配成功之后,才會調用對應的處理函數。
在匹配時,會按照路由的順序進行匹配,如果請求類型和請求的URL同時匹配成功,則Express會將這次請求,轉交給對應的function函數進行處理。
路由匹配的注意點:
①按照定義的先后順序進行匹配
②請求類型和請求的URL同時匹配成功,才會調用對應的處理函數
10.2 路由的使用
1. 最簡單的用法
在Express中使用路由最簡單的方式,就是把路由掛載到app上,示例代碼如下: