在 URL 中构造查询参数时,删除 qs.stringify 中具有空值或 null 值的键

scr*_*obh 3 javascript node.js

我正在使用查询字符串解析构建一个 URL qs.stringify,其中我只希望 URL 中存在非空或非空值。

我得到的结果如下:

localhost:3000/user?name=john&age=
Run Code Online (Sandbox Code Playgroud)

但是,我不希望age参数包含在网址中,因为年龄的值为null

以下是我的代码的摘录:

const url = `/user?${qs.stringify({ name, age })}`;
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Apl*_*123 5

您可以使用Object.fromEntries和来创建一个函数Object.entries来过滤掉非空和非空值:

function filterNonNull(obj) {
    return Object.fromEntries(Object.entries(obj).filter(([k, v]) => v));
}

const url = `/user?${qs.stringify(filterNonNull({ name, age }))}`;
Run Code Online (Sandbox Code Playgroud)

  • 这也删除了 0 (2认同)