Express 中的路由
在 Express 中,路由指的是客戶端的請求與服務(wù)器處理函數(shù)之間的映射關(guān)系哗讥。
Express 中的路由分 3 部分組成嚷那,分別是請求的類型、請求的 URL 地址忌栅、處理函數(shù)车酣,格式如下:
app.METHOD(PATH,HANDLER)
Express中的路由例子(簡單使用)
//匹配 GET 請求曲稼,且請求 URL 為 /
app.get('/',(req,res)=>{
res.send('get請求')
})
//匹配 POST 請求,且請求 URL 為 /
app.post('/',(req,res)=>{
res.send('post請求')
})
路由的匹配過程
每當(dāng)一個請求到達(dá)服務(wù)器之后湖员,需要先經(jīng)過路由的匹配贫悄,只有匹配成功之后,才會調(diào)用對應(yīng)的處理函數(shù)娘摔。
在匹配時窄坦,會按照路由的順序進(jìn)行匹配,如果請求類型和請求的 URL 同時匹配成功凳寺,則 Express 會將這次請求鸭津,轉(zhuǎn)交給對應(yīng)的 function 函數(shù)進(jìn)行處理。
模塊化路由
為了方便對路由進(jìn)行模塊化的管理肠缨,Express 不建議將路由直接掛載到 app 上逆趋,而是推薦將路由抽離為單獨的模塊。
//導(dǎo)入 express
var express = require('express')
//創(chuàng)建路由對象
var router = express.Router();
//掛載獲取用戶列表的路由
router.get('/user/list',(req,res)=>{
res.send('Get user list')
})
//掛載添加用戶的路由
router.get('/user/add',(req,res)=>{
res.send('Add new user')
})
//向外導(dǎo)出路由對象
module.exports = router
注冊路由模塊
//導(dǎo)入路由模塊
const userRouter = require( './router/user.js ')
//使用app.use()注冊路由模塊
app.use(userRouter)
為路由模塊添加前綴
類似于托管靜態(tài)資源時晒奕,為靜態(tài)資源統(tǒng)一掛載訪問前綴一樣
//導(dǎo)入路由模塊
const userRouter = require( './router/user.js ')
//使用app.use()注冊路由模塊闻书,并添加統(tǒng)一的訪問前綴 /abc
app.use('/abc',userRouter)