0
我目前正在開發一個需要發送自定義GET HTTP請求的項目。NodeJs:任何方式繞過querystring.stringify與空的對象?
我使用的是默認的查詢字符串建設者:the Documentation
const querystring = require('querystring');
的問題是對對象(也可能爲空數組)如
extendTypes={}
被serialiazed爲:
extendTypes=
預期結果:
extendTypes={}
或它的URI編碼版本:
extendTypes%3D%7B%7D
所以,我怎能希望這樣做呢?如果在內置模塊中不可能,哪一個可以做我想要的。
這裏是我完整的代碼,如果你想:
function generateGetRequest(dataMap, url) {
let queryParams = {};
let uriParams = {};
for (let [key, value] of dataMap) {
// if value is an object or an array
if (value instanceof Object || value instanceof Array) {
uriParams[key] = value;
} else {
// param working for superagent
queryParams[key] = value;
}
}
let queryParamsUri = querystring.stringify(uriParams);
console.log(queryParamsUri);
let finalUrl = url + ((Object.keys(uriParams).length > 0) ? "?" + queryParamsUri : "");
}
是您'querystring'對象? –
這是一個inbuilded節點模塊:https://nodejs.org/api/querystring.html – jy95
根據文檔,如果查詢字符串包含任何空參數,它將以'someVar ='的形式出現。 (例如,'querystring.stringify({foo:'bar',baz:['qux','quux'],corge:''})'會返回''foo = bar&baz = qux&baz = quux&corge =''(看看這裏的'corge'值) –