У меня есть следующие настройки для моего проекта с использованием пакета pg node-postgres:
Простая таблица 'tmp' выглядит так:
Согласно jsonORG и postgres docs объект:
{"foo" : true}
является синтаксически допустимым JSON, и при использовании pgAdmin Query-tool с:
UPDATE tmp SET data = '{"foo": false}' WHERE id = '1'
работает нормально, но когда я пытаюсь обновить свою таблицу по экспресс-маршруту, используя pg:
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
Я пробовал функцию to_json из postgresql и пакет to-json из npm в экспресс-маршруте - все с одинаковым отрицательным результатом.
Мне не хватает фундаментального понимания или это проблема форматирования / цитирования?
Заранее спасибо за ваши идеи! ;)
ps: И да - я прочитал эту и эту статью ..