不要在querystring stringify中编码url

有没有selectqs.stringify 不会编码的url?

 $ node > var qs = require("querystring"); undefined > qs.stringify({"url": "http://domain.com"}); 'url=http%3A%2F%2Fdomain.com' 

我想要的输出:

 'url=http://domain.com' 

不直接,不。 虽然,如果不是在查询string中转义值,那么使用查询string几乎没有任何好处。 心中也只是做: var q = 'url=http://domain.com'

编辑:从源头上看,唯一的办法是改变(即覆盖)查询string的行为()函数 – 这是可能的,但不是一个好主意。

这有点晚,但对于下一个人,你可以这样做:querystring.unescape(myString)

迟到的答案,但…
qs.stringify()选项encode:false实际上禁用了URI编码。

Qs.stringify文档

您也可以在nodejs request/request模块中使用它:

 request({ url: 'http://url.domain' qs: { qs1: 'thisIsNotEncodedInTheRequest%20://асд' }, qsStringifyOptions: { encoding: false } }); 

答案是:

 qs.stringify({url: "http://domain.com"}, { encodeURIComponent: uri => uri }); 

选项“ encodeURIComponent:uri => uri ”是禁用编码。