Express框架定制路由實例分析
1、序言
上一節快速搭建Express開發系統步驟,對如何使用express-generator創建一個WEB項目進行了說明,本節我們會對這個項目的代碼進行分析,完成一個路由功能的開發。涉及的知識點有以下幾個:
- 開發一個路由模塊(可以支持get和post請求)
- 測試(get請求用瀏覽器驗證、post請求呢,我就用postman簡單處理一下,因為本節課程沒有想去講web端post請求的知識,后續有機會單獨講解吧)
2、開發一個路由模塊
在上一篇文章中講到,我們以http://localhost:3000/system 路由為例,制作它的get和post請求路由。步驟如下:
2.1 在routes目錄下創建system.js文件
代碼內容如下
var express = require("express");var router = express.Router();// get routerrouter.get("/", function(req, res, next) { res.send("<p>這是get請求/system返回的資源</p>")});// post routerrouter.post("/:id", function(req, res, next) { var id = req.params.id; //注意這里的id是/:id指定的路由參數 var name = req.body.name; var tel = req.body.tel; res.json({status:"ok",message:"你發送的內容("+ id + "、" + name + "、" + tel +")服務器已經收到" });});module.exports = router;
解釋一下,router.get用于響應http的get請求,router.post用于響應http的post請求。我們在第三部分驗證時,分別會通過瀏覽器和postman分別來對/system路由發起get和post請求。
此外,/:id這部分會映射到用戶的url請求路徑中,如你的請求鏈接是http://localhost:3000/system/2402040134,那么在post的處理函數中,會將:id匹配到2402040134這個值,相當于是一個url參數。同時,要注意,在代碼中獲取id的值時,使用的是req.params這個對象。不可與req.body混淆。
2.2、如何使路由模塊生效
不過,目前這個代碼還沒有被注冊到/system路徑下,接下來我們需要在app.js中添加幾行代碼。
注:在app.js中第9行引入我們的system.js模塊,第24行,將這個模塊注冊在/system路徑上。
3、測試驗證
在vs code中沒有顯示powershell控制臺時,可以使用ctrl+` 喚醒。然后輸入npm start
,啟動我們的項目。
3.1 驗證router.get
這里我們通過瀏覽器訪問/system,就可以執行到router.get后邊的方法,看看是否會得到預期的返回(是一段Html內容)。
3.2 驗證router.post
安裝postman的過程我不在這里描述了,大家自行安裝一下。以下截圖是我請求界面的信息及驗證結果。
注意,在上圖中url中的2402040134即路由參數,下方的name和tel是post的請求body內容。最后,可以看到,返回了我們預期的json內容。
4、總結
內容不是很復雜,寫得比較簡單,為了方便初學的朋友跟著練習。當然,不忘預告一下,下一章節我會以本文中提到的router.get請求為重點,引入ejs模板的使用,讓大家可以通過res對象,通過數據+模板的方式,完成服務器端渲染生成頁面。
相關文章:
1. express框架通過ejs模板渲染輸出頁面實例分析2. Vue+express+Socket實現聊天功能3. VUE+Express+MongoDB前后端分離實現一個便簽墻4. Express 框架中使用 EJS 模板引擎并結合 silly-datetime 庫進行日期格式化的實現方法5. express框架+bootstrap美化ejs模板實例分析6. Ajax 的初步實現(使用vscode+node.js+express框架)7. 初學者如何快速搭建Express開發系統步驟詳解8. IIS Express 取代 ASP.NET Development Server的配置方法9. 使用本機IIS?Express開發Asp.Net?Core應用圖文教程