前言:通過上一章,我們學(xué)習(xí)了如何建一個express的項目,那么本文給大家?guī)砺酚傻南嚓P(guān)內(nèi)容,我們都知道前端的路由,都是以url的形式,那么express的路由也是如此。
前面我一筆帶過了,關(guān)于app.js里面接口部分,接下來我們來詳細(xì)講一講
app.get('/', (req, res) => {
//req = request(請求)
//res = response(回應(yīng))
res.send("Hello World")
})
分析:app后面的get就是我們請求的類型,像是post、delete、put這種,
/就是路由地址,根路徑,所以我們請求http://localhost:8080/的時候,會直接給我們返回send里面的內(nèi)容。req,其實就是請求,它的全名叫做request,res,就是回應(yīng),全名叫做response。我們不難理解這兩個參數(shù),就好比,前端請求接口,發(fā)送給后臺,后臺回應(yīng)給前端值。
那么講完get的請求類型,我們再說一下post的請求類型:
app.post('/', (req, res) => {
res.send("I am a post")
})
這里需要注意的是,我們每一次修改,想再去看結(jié)果,就需要重新啟動服務(wù)。
重新進(jìn)去會看到,同樣是根路徑,頁面返回的結(jié)果仍然是get的請求結(jié)果,為什么不是post返回的結(jié)果呢?
因為我們的瀏覽器默認(rèn)返回的就是get請求,所以post請求,我們有兩種方式可以測試,一種是,前端調(diào)接口請求,一種就是我們通過postman這種方式進(jìn)行查看。

我們繼續(xù)舉例:
app.get('/about', (req, res) => {
res.send("I am a get-about")
})
app.put('/about', (req, res) => {
res.send("I am a get-put")
})
有了第一次經(jīng)驗,這個返回結(jié)果一定是get請求

那么想看put類型的返回結(jié)果,就和驗證post方法一樣(這里就不繼續(xù)驗證了),我們再稍微變一下,我們隱藏掉/about的get請求,我們再去訪問,結(jié)果是不能返回的,因為此時路徑會去找get的接口,由于我們隱藏了接口,所以不是一個get接口,就不會被訪問到。
從上面我們得出,盡管路徑一樣,但是我們請求的類型不一樣,還是很好區(qū)分的。
當(dāng)然express的路由不僅限于一些請求的類型,還比如app.all的方法,可以捕獲所有的請求類型,還有一些特殊的路由寫法。
第一種:
app.get('/ab?cd', function (req, res) {
res.send('ab?cd')
})
上面這種寫法就是匹配,我們可以是abcd,也可以acd。換句話來說,就是b可以有也可以沒有,問號在誰的后面,就相當(dāng)于可以有,也可以沒有。
第二種:
app.get('/ab+cd', function (req, res) {
res.send('ab+cd')
})
上面的寫法,我們可以是abcd、abbcd、abbbcd,諸如此類,換句話來說就是?前面的數(shù)值不管有多少個都可以。
第三種:
app.get('/ab*cd', function (req, res) {
res.send('ab*cd')
})
上面的寫法,我們可以是abcd, abxcd, abRANDOMcd, ab123cd,諸如此類。換句話來說,就是ab和cd中間不管你插入什么都可以,不限。
第四種:
app.get('/ab(cd)?e', function (req, res) {
res.send('ab(cd)?e')
})
上面的寫法,我們可以是/abe and /abcde,換句話來說就是,括號里面的可以看成一個整體,我們可以有cd,也可以沒有。
到這里,就不細(xì)講了,因為官網(wǎng)上面關(guān)于路由的介紹還是非常詳細(xì)的,很多其實我們做一些簡單的也不會經(jīng)常用到,像這種的話,就需要大家自己去學(xué)習(xí)了。