我可以使用下面的代码来获取查询字符串。
var query_string = request.query;
我需要的是原始的未解析的查询字符串。我怎样才能得到它?对于下面的网址,查询字符串是
{ tt: 'gg' }
,我需要 tt=gg&hh=jj
等等......
http://127.0.0.1:8065?tt=gg
Server running at http://127.0.0.1:8065
{ tt: 'gg' }
req.originalUrl
。 (旧版本可以使用节点 http 模块中的 req.url
。)这应该会生成原始字符串,不包括 ?
:
var query_index = req.originalUrl.indexOf('?');
var query_string = (query_index>=0)?req.originalUrl.slice(query_index+1):'';
// 'tt=gg&hh=jj' or ''
注意,如果有 a
#
表示查询结束,则不会被识别。
如果要将字符串传递到新 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'
var queryString = Object.keys(request.query).map(key => key + '=' + request.query[key]).join('&');
或
var queryString = require('querystring').stringify(request.query);