2016-04-23 8 views
0

基本的に私がやっていることは、Webページをスクラップして、必要なすべてのデータを取得し、自分のサイトのWebページに表示することです。この特定のページを削るとき、私は 'href'タグ内のリンクを必要とします。しかし、この特定のサイトは定期的なリンクを使用していません。 'href'タグの中にはクエリ文字列があります。私の計画は、 'href'の中にあったものを取り、次のリクエストを行うためのURLを作成することでしたが、今度はURLにクエリ文字列を渡そうとするとreq.params経由でノードにアクセスできなくなりますノードとエクスプレスを使用してリクエストにクエリ文字列を実際の文字列として渡す

サーバがクエリ文字列であると思っていないクエリ文字列を渡す方法があるかどうか、またはすべてのパラメータを取得してゼロから再度URLを構築するためにreq.queryを使用する必要があるかどうかを知りたいですか?

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; 
}); 

このコードは機能しません。 ?私はリンクをクリックすると、それは、あなたはそれがURLにクエリ文字列のように扱われないように、クエリ文字列をエンコードする必要があります= bleh

答えて

1

変数/それは得ることができませんでした/表示私に語った:

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

URLは/display/%3Fvariable%3Dblehとなります。コメントに記載されているように、Expressは自動的にreq.params.stringの値をデコードし、正しい値になります。

+0

これを今試してみます。 – Popatop15

+0

Aha!出来た。本当にありがとう! +1 Btw、expressが自動的にデコードしました。それはURLバーのlooong文字列に変換されましたが、サーバサイドではparamを記録するときに必要な方法でした。 – Popatop15

+0

驚くばかり!私の応答を正しい答えとしてマークすることを忘れないでください:) – NathanW

関連する問題