34

以下を使用してクエリ文字列を取得できます。

  var query_string = request.query;

私が必要としているのは、解析されていない生のクエリ文字列です。どうすればそれを取得できますか? 以下の URL の場合、クエリ文字列は{ tt: 'gg' }, I need tt=gg&hh=jjetc.... です。

http://127.0.0.1:8065?tt=gg

Server running at http://127.0.0.1:8065
{ tt: 'gg' }
4

4 に答える 4

43

の例のようにnodeURLモジュールを使用できます。

require('url').parse(request.url).query

例えば

node> require('url').parse('?tt=gg').query
'tt=gg'

または、URLに直接アクセスしてsubstr?

var i = request.url.indexOf('?');
var query = request.url.substr(i+1);

(これはrequire('url').parse()ボンネットの下で行うことです)

于 2012-05-17T22:34:23.363 に答える
7

req.originalUrlExpress 3.x+で使用できます。(古いバージョンではreq.url、ノードの http モジュールから使用できます。)これにより、以下を除く生の文字列が生成されます?

var query_index = req.originalUrl.indexOf('?');
var query_string = (query_index>=0)?req.originalUrl.slice(query_index+1):'';
// 'tt=gg&hh=jj' or ''

クエリの終わりを示すがある#場合、認識されないことに注意してください。

文字列を新しい URL に渡したい場合は、以下を含める必要があります?

var query_index = req.originalUrl.indexOf('?');
var query_string = (query_index>=0)?req.originalUrl.slice(query_index):'';
// '&tt=gg&hh=jj' or ''
res.redirect('/new-route'+query_string);
// redirects to '/newroute?tt=gg&hh=jj'
于 2016-03-24T20:53:50.773 に答える
3

Express は、オブジェクトparseurlに格納するものを使用します。元の文字列クエリには、 からアクセスできます。_parsedUrlrequestrequest._parsedUrl.query

于 2017-11-07T20:56:57.270 に答える