我可以使用下面的方法来获取查询字符串.
var query_string = request.query;
Run Code Online (Sandbox Code Playgroud)
我需要的是原始未解析的查询字符串.我怎么做到的?对于下面的url,查询字符串是{ 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' }
Run Code Online (Sandbox Code Playgroud)
Per*_* P. 31
require('url').parse(request.url).query
Run Code Online (Sandbox Code Playgroud)
例如
node> require('url').parse('?tt=gg').query
'tt=gg'
Run Code Online (Sandbox Code Playgroud)
或者直接去网址和substr之后?
var i = request.url.indexOf('?');
var query = request.url.substr(i+1);
Run Code Online (Sandbox Code Playgroud)
(require('url').parse()引擎盖下是什么)
您可以req.originalUrl在快递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 ''
Run Code Online (Sandbox Code Playgroud)
请注意,如果您要用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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15479 次 |
| 最近记录: |