node.js - 如何使用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';
解决方案
推荐阅读
- css - 有没有办法在不拉伸对象拟合的情况下转换比例?
- android - Xamarin:从活动调用 print(),但仍收到 Java.Lang.IllegalStateException:“只能从活动打印”
- wagtail - 如何使用 StaticLiveServerTestCase 套件以编程方式设置 Wagtail 根页面以进行测试
- python - 如何在Python中找到列表中出现的平均值
- java - 移动文件上的 IOException (FileUtils.moveFile)
- python - 如何通过 pywinauto 加速浏览应用程序?
- python - 为什么 go.Sankey() 没有输出?(plotly.graph_output,python)
- python - Python中的R序列函数
- swift - SwiftUI Nested GeometryReader - 破坏 UI
- android - 如何在没有无限循环的情况下检查 JSON 数据是否为空?