pg nodejs 包结果 'invalid input syntax for type json'

pg nodejs package results in 'invalid input syntax for type json'

我使用 pg node-postgres 包对我的项目进行了以下设置:

简单的 table 'tmp' 看起来像这样:

根据jsonORG and the postgres docs对象:

{"foo" : true}

在句法上是有效的 JSON,并且当使用 pgAdmin 查询工具时:

UPDATE tmp SET data = '{"foo": false}' WHERE id = '1'

工作正常,但是当我尝试使用 pg:

通过我的快速路线更新我的 table
router.put('/updateTMP', (req, res) => {
    // I use dummies in this case instead of req.body.someKey for testing purposes
    let dummyJSON = {"foo":true};
    let dummyID = 1;
    pg.query(`UPDATE tmp SET data = '${dummyJSON}' WHERE id = '${dummyID}'`, (errUpdate, responseUpdate) => {
        if (!errUpdate) { // NO ERROR
            res.json({success: true, message: responseUpdate});
        }
        else { // ERROR
            console.log(dummyJSON);
            console.log(errUpdate);
            res.json({success: false, message: errUpdate}); 
        }
    })
})

我从数据库中得到以下错误:

error: invalid input syntax for type json

我已经尝试了 npm 的 to_json function from postgresql and the to-json package 快速路线 - 所有结果都是相同的负面结果。

我是缺少一些基本的理解还是一些formating/quoting-issue?

提前感谢您的想法! ;)

ps:是的 - 我已经通读了 this, and 篇文章..

我遇到了同样的问题。在将它传递给查询之前尝试使用 JSON.stringify() 将你的 JS 对象转换为字符串,因为 pg 不会总是自动为你做这件事。

有关详细信息,请参阅 GitHub 上的 issue