Express URL跳轉(zhuǎn)(重定向)的實現(xiàn)方法
Express是一個基于Node.js實現(xiàn)的Web框架,其響應(yīng)HTTP請求的response對象中有兩個用于URL跳轉(zhuǎn)方法res.location()和res.redirect(),使用它們可以實現(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具有特殊的意義,這個涉及到請求頭Referer中指定的URL,如果Referer頭沒有指定,將會設(shè)置為'/'。
Express通過Location頭將指定的URL字符串傳遞給瀏覽器,它并不會對指定的字符串進行驗證(除'back'外)。而瀏覽器則負責(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)碼,使用默認的狀態(tài)碼”302“:”Found“,
res.redirect('/foo/bar');
res.redirect('http://example.com');
res.redirect(301, 'http://example.com');
res.redirect('../login');
重定向可以是一個完整的URL,這樣會重定向到一個不同的站點上。
res.redirect('http://google.com');
重定向也可以相對于所在主機的根目錄,例如,如果你的程序運行在:http://example.com/admin/post/new上下面的代碼將會重定向到如下地址:http://example.com/admin
res.redirect('/admin');
重定向也可以相對于當(dāng)前的URL,例如:從http://example.com/blog/admin/這個地址(注意反斜杠),下面的代碼將會重定向到地址:http://example.com/blog/admin/post/new
res.redirect('post/new')
在從地址: http://example.com/blog/admin重定向到 post/new,如果沒有反斜杠的話將會重定向到:http://example.com/blog/post/new
如果你感覺上面的行為很迷惑,想想文件目錄和文件的路徑,這會讓你更好理解。
相對路徑的重定向也是允許的,如果你的地址是: http://example.com/admin/post/new,下面的代碼將會重定向到http//example.com/admin/post這個地址:
res.redirect('..');
相關(guān)文章
輕松創(chuàng)建nodejs服務(wù)器(8):非阻塞是如何實現(xiàn)的
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(8):非阻塞是如何實現(xiàn)的,本文著重分析非阻塞的實現(xiàn),對代碼進行了分解,需要的朋友可以參考下2014-12-12


