如何在 fetch POST 请求中传递空值

How to pass null value in fetch POST request

我想在提取 POST 请求中传递空值。

为了说明这个例子,这是我的 API 客户端 Insomnia(相当于 Postman)的截图。

这POST失眠returns想要的结果。

现在我尝试使用以下代码在 javascript 中执行此操作:

    let decal_colo = document.querySelector('#decal_colo').value.trim();
    if (!decal_colo) {decal_colo=null};
    let owner = document.querySelector('#owner').value.trim();

    console.log(decal_colo, owner)

    const response = await fetch('/api/testFilter', {
        method: 'POST',
        body: JSON.stringify({ decal_colo, owner }),
        headers: { 'Content-Type': 'application/json' },
    });

    if (response.ok) {
        const filteredData = await response.json();
        console.log(filteredData);

如果用户未提供任何输入,您可以看到我正在尝试在此行中传递 null 值:

    if (!decal_colo) {decal_colo=null};

这将 console.log 的值 null 但我的 API 路线没有以相同的方式解释它。没有错误,但返回零结果。我查看了数据库,应该有返回结果。

如果有帮助,我正在使用 sequelize 来创建我的模型和控制器

如何以正确的方式传递 null

在 Insomnia 应用程序中,您发送的是 JSON 对象,但在 JavaScript 代码中,您发送的是字符串。将正文:JSON.Stringify 替换为:

body: { decal_colo, owner }