Express URL跳轉(zhuǎn)(重定向)的實(shí)現(xiàn)方法
Express是一個(gè)基于Node.js實(shí)現(xiàn)的Web框架,其響應(yīng)HTTP請(qǐng)求的response對(duì)象中有兩個(gè)用于URL跳轉(zhuǎn)方法res.location()和res.redirect(),使用它們可以實(shí)現(xiàn)URL的301或302重定向。
res.location(path)
res.location(path)
下面列舉了幾種,設(shè)置http響應(yīng)頭Location的方法
res.location('/foo/bar');
res.location('http://example.com');
res.location('back');
路徑值back具有特殊的意義,這個(gè)涉及到請(qǐng)求頭Referer中指定的URL,如果Referer頭沒(méi)有指定,將會(huì)設(shè)置為'/'。
Express通過(guò)Location頭將指定的URL字符串傳遞給瀏覽器,它并不會(huì)對(duì)指定的字符串進(jìn)行驗(yàn)證(除'back'外)。而瀏覽器則負(fù)責(zé)將當(dāng)前URL重定義到響應(yīng)頭Location中指定的URL。
res.redirect([status,] path)
其中參數(shù):
- status:{Number},表示要設(shè)置的HTTP狀態(tài)碼
- path:{String},要設(shè)置到Location頭中的URL
使用指定的http狀態(tài)碼,重定向到指定的URL,如果不指定http狀態(tài)碼,使用默認(rèn)的狀態(tài)碼”302“:”Found“,
res.redirect('/foo/bar');
res.redirect('http://example.com');
res.redirect(301, 'http://example.com');
res.redirect('../login');
重定向可以是一個(gè)完整的URL,這樣會(huì)重定向到一個(gè)不同的站點(diǎn)上。
res.redirect('http://google.com');
重定向也可以相對(duì)于所在主機(jī)的根目錄,例如,如果你的程序運(yùn)行在:http://example.com/admin/post/new上下面的代碼將會(huì)重定向到如下地址:http://example.com/admin
res.redirect('/admin');
重定向也可以相對(duì)于當(dāng)前的URL,例如:從http://example.com/blog/admin/這個(gè)地址(注意反斜杠),下面的代碼將會(huì)重定向到地址:http://example.com/blog/admin/post/new
res.redirect('post/new')
在從地址: http://example.com/blog/admin重定向到 post/new,如果沒(méi)有反斜杠的話將會(huì)重定向到:http://example.com/blog/post/new
如果你感覺(jué)上面的行為很迷惑,想想文件目錄和文件的路徑,這會(huì)讓你更好理解。
相對(duì)路徑的重定向也是允許的,如果你的地址是: http://example.com/admin/post/new,下面的代碼將會(huì)重定向到http//example.com/admin/post這個(gè)地址:
res.redirect('..');
相關(guān)文章
用npm install時(shí)報(bào)錯(cuò)node-sass npm ERR command
在用npm install時(shí)報(bào)錯(cuò)npm ERR! path D:…\node-sass和npm ERR! command failed 問(wèn)題,本文給大家介紹了如何解決這個(gè)問(wèn)題,文中通過(guò)圖文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
一文學(xué)會(huì)如何升級(jí)npm管理的各依賴(lài)版本
npm在前端開(kāi)發(fā)流程中提供了非常完善的自動(dòng)化工具鏈,已成為每個(gè)前端開(kāi)發(fā)者必備的工具,下面這篇文章主要給大家介紹了關(guān)于如何升級(jí)npm管理的各依賴(lài)版本,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
在Node.js中實(shí)現(xiàn)獲取用戶(hù)頻道信息的功能
在構(gòu)建社交或視頻分享平臺(tái)時(shí),允許用戶(hù)查看其他用戶(hù)的頻道信息是一個(gè)基本需求,本文將介紹如何在Node.js應(yīng)用中,使用Express框架和Mongoose庫(kù)來(lái)實(shí)現(xiàn)這一功能,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-04-04
node.js中的buffer.Buffer.byteLength方法使用說(shuō)明
這篇文章主要介紹了node.js中的buffer.Buffer.byteLength方法使用說(shuō)明,本文介紹了buffer.Buffer.byteLength的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
利用nginx + node在阿里云部署https的步驟詳解
這篇文章主要給大家介紹了關(guān)于利用nginx + node在阿里云部署https的步驟,文中通過(guò)圖文及示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
node.js 基于 STMP 協(xié)議和 EWS 協(xié)議發(fā)送郵件
這篇文章主要介紹了node.js 基于 STMP 協(xié)議和 EWS 協(xié)議發(fā)送郵件的示例,幫助大家更好的理解和使用node.js,感興趣的朋友可以了解下2021-02-02
node連接MySQL數(shù)據(jù)庫(kù)的3種方式總結(jié)
現(xiàn)在前端基本上都會(huì)用一些NodeJs,想必也想自己寫(xiě)一些API或者個(gè)人博客的后臺(tái)系統(tǒng),這些就離不開(kāi)連接數(shù)據(jù)庫(kù)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于node連接MySQL數(shù)據(jù)庫(kù)的3種方式,需要的朋友可以參考下2022-08-08


