如何利用Node.js url.parse返回字符串?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (82)

我正在尝试做一些简单的分页,我试图解析当前的URL,然后生成指向相同查询的链接,但带有递增和递减的page参数。

我已经尝试了以下操作,但它会生成相同的链接,但不带新page参数。

var parts = url.parse(req.url, true);
parts.query['page'] = 25;
console.log("Link: ", url.format(parts));

我知道我可以迭代和手动建立字符串,但我希望有一个现有的方法。

提问于
用户回答回答于

如果你看最新的文档,你可以看到它的url.format行为如下:

  • search 将被用来代替 query
  • query(对象;请参阅查询字符串)将仅在search缺失时才使用。

而当你修改querysearch保持不变,它使用它。所以要强制它使用query,只需search从对象中删除:

var url = require("url");
var parts = url.parse("http://test.com?page=25&foo=bar", true);
parts.query.page++;
delete parts.search;
console.log(url.format(parts)); //http://test.com/?page=26&foo=bar
用户回答回答于

在我看来,这是节点中的一个错误。你可以试试

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

扫码关注云+社区

领取腾讯云代金券