首页 > 解决方案 > 如何使用nodejs中的动态变量更新postgres jsonb?

问题描述

我试图了解我做错了什么。尝试运行此查询以更新我的表时,我不断收到 json 语法错误。这是我在控制台中看到的错误

错误:json 类型的输入语法无效

此更新查询的正确语法是什么?

var acc_status = 'active';
var token = '9n98jpmimuj94t24t';

pool.query("UPDATE users SET info = JSONB_SET(info, '{auth,acc_status}', '"+acc_status+"') WHERE info -> 'auth' -> 'validation' ->> 'token' = '"+token+"' RETURNING *", (err, res) => {
if (err) {

//log errors
console.log(err.stack);

//return error to client

} else {

//success
console.log(res.rows);

//broadcast
io.emit('activateAccount',res.rows);

}
});

如果我在 PgAdmin 查询工具中运行它,它可以工作

UPDATE users SET info = JSONB_SET(info, '{auth,acc_status}', '"active"') 
WHERE info -> 'auth' -> 'validation' ->> 'token' = '9n98jpmimuj94t24t'; 

标签: node.jsjsonpostgresqljsonb

解决方案


推荐阅读