2016-04-23 23 views
0

因此,基本上我正在做的是抓取網頁,獲取我想要的所有數據並將其顯示在我網站的網頁上。當抓取這個特定的頁面時,我需要'href'標籤內的鏈接。但是,此特定網站不使用常規鏈接。 'href'標籤內部是一個查詢字符串。我的計劃是採取'href'內的內容並創建一個url來發出我的下一個請求,但是現在,當我嘗試將查詢字符串傳遞到url時,我無法通過節點訪問它,通過req.params使用Node和Express將查詢字符串作爲實際字符串傳遞給請求

我想知道是否有一種方法可能傳遞查詢字符串,而服務器認爲它是一個查詢字符串,或者我將不得不使用req.query來從頭開始重新獲取所有參數並構建URL?

下面是我所談論的一些例子:

page1.ejs:

<a href="/display/<%= some.href %>"></a> 

some.href = 「變量=的Bleh?」

服務器端處理:

app.get('/display/:string', function(req, res) { 
    var url = "http://theurlineed.com/" + req.params.string; 
}); 

此代碼不起作用。當我點擊鏈接它告訴我它無法獲取/顯示/變量=的Bleh

回答

1

你需要編碼的查詢字符串,使其不能像在URL查詢字符串處理:

some.href = encodeURIComponent("?variable=bleh"); 

那麼你的網址將是:/display/%3Fvariable%3Dbleh。正如評論中提到的那樣,Express會自動解碼req.params.string中的值,所以它會是正確的值。

+0

我現在就試試這個。 – Popatop15

+0

啊哈!有效。非常非常感謝你! +1 順便說一句,express做了自動解碼。它把它變成了URL地址欄中的looong字符串,但是當我登錄param時,它是它需要的。 – Popatop15

+0

太棒了!不要忘記標記我的答案爲正確的答案:) – NathanW

相關問題