我正在尝试做一些简单的分页。为此,我尝试解析当前的URL,然后生成指向相同查询的链接,但带有递增和递减的page
参数。
我尝试执行以下操作,但它生成了相同的链接,没有新的page
参数。
var parts = url.parse(req.url, true);
parts.query['page'] = 25;
console.log("Link: ", url.format(parts));
documentation for the URL module似乎暗示format
是我所需要的,但我做错了什么。
我知道我可以手动迭代和构建字符串,但我希望有一个现有的方法可以做到这一点。
发布于 2011-09-22 23:51:59
在我看来,这是node中的一个bug。你可以试试
// in requires
var url = require('url');
var qs = require('querystring');
// later
var parts = url.parse(req.url, true);
parts.query['page'] = 25;
parts.query = qs.stringify(parts.query);
console.log("Link: ", url.format(parts));
发布于 2011-09-22 23:50:01
另一个答案是好的,但你也可以这样做。querystring
模块用于处理查询字符串。
var querystring = require('querystring');
var qs = querystring.parse(parts.query);
qs.page = 25;
parts.search = '?' + querystring.stringify(qs);
var newUrl = url.format(parts);
发布于 2013-01-22 23:26:40
要在不需要我使用的(‘URL’)的情况下干掉代码并获取url变量:
/*
Used the url module to parse and place the parameters into req.urlparams.
Follows the same pattern used for swagger API path variables that load
into the req.params scope.
*/
app.use(function(req, res, next) {
var url = require('url');
var queryURL = url.parse(req.url, true);
req.urlparams = queryURL.query;
next();
});
var myID = req.urlparams.myID;
这将解析url变量并将其移动到req.urlparams变量中。它在请求工作流程的早期运行,因此可用于所有expressjs路径。
https://stackoverflow.com/questions/7517332
复制相似问题