Node.js url.parse结果返回字符串

Ben*_*eys 17 url node.js

我正在尝试做一些简单的分页.为此,我正在尝试解析当前的URL,然后生成指向同一查询的链接,但是使用递增和递减的page参数.

我已尝试执行以下操作,但它生成相同的链接,没有新page参数.

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

URL模块文档似乎表明这format是我需要的,但我做错了.

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

Ale*_*pin 48

如果查看最新文档,可以看到其url.format行为方式如下:

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

当你修改时query,search保持不变并使用它.所以要强制它使用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
Run Code Online (Sandbox Code Playgroud)

确保您始终阅读最新版本的文档,这将为您节省很多麻烦.

  • 那个伙伴过早优化的主要例子 (10认同)
  • 对不起,并不意味着要咄咄逼人.你是对的,如果有人在做速度至关重要的事情,他们可能不想使用`delete`.感谢您的评论. (6认同)
  • 我没有要求你改变答案,我留下了评论。_delete_ 比设置为 null 或 undefined 慢 1000%,并且无论如何在对象中都没有意义(甚至 _mean_ 删除对象的属性是什么,这在 OO 设计中没有意义)。在我看来,将它设置为 undefined 更有意义,它仍然具有属性,只是不再定义。 (3认同)