首页 > 解决方案 > getElementById.value 到 json 到带有 node.js 的 PostgreSQL,不会传递值

问题描述

好吧,我需要一些关于我的应用程序的帮助。

我正在尝试传递一个从getElemenyById()我的 HTML 中获得的值,但是当代码运行时它不会进入我的数据库。

当我通过显示值时,Alert()我正确地看到了 json 值,但它们不会进入数据库。

如果我手动输入值而不是使用getElementById().value,则代码可以正常工作。

我会留下我的代码的一些关键部分,在此先感谢。任何帮助表示赞赏!

        <script>
            const btnCreate = document.getElementById("btn");
            btnCreate.addEventListener("click", async e=> {
                const jsonRequest = {};

                jsonRequest.id = document.getElementById("status").value;
                jsonRequest.lead_id = document.getElementById("brandname").value;
                alert("id = "+jsonRequest.id+" && lead_d = "+jsonRequest.lead_id);

                const result = await fetch("http://localhost:8080/lds", {method: "POST",
                    headers: {"content-type": "application/json"}, body: JSON.stringify(jsonRequest) });
                const success = await result.json();
                alert("CREATED! ")

            })
        </script>
app.post("/lds", async (req, res) => {
    let result = {}
    try{

        const reqJson = req.body;
        await createStatus(reqJson.id,reqJson.lead_id);
        result.success = true;
    }
    catch(e){
        result.success = false;
    }

    finally{
        res.setHeader("content-type", "application/json")
        res.send(JSON.stringify(result))
    }

})
async function createStatus(id, lead_id) {

    try {
        await client.query("insert into lead_status (id, lead_id) values ($1, $2)", [id, lead_id]);
        return true
    } catch (e) {
        return false;
    }
}

标签: javascripthtmlnode.jspostgresqlgetelementbyid

解决方案


嗯,这很快,

我想我找到了问题的答案,但我不确定它是否正确。我确信它有效。

问题出在html脚本上的js上。我只是解析了getElementById().valueas int。

我的 db 表中的两个字段都是整数。


parseInt(jsonRequest.id = document.getElementById("brandname").value);
parseInt(jsonRequest.lead_id = document.getElementById("status").value);


推荐阅读