SequelizeJS - 使用原始查询将 JSONB 插入 Postgres - 如何转义

use*_*212 4 postgresql node.js sequelize.js

我想插入一行 JSONB 内容作为原始查询。问题是我在插入任何“非平凡”JSON 对象的任何地方都会出错。

这些是我的原始 SQL 查询的示例:

所有这些错误:SequelizeBaseError:json 类型的输入语法无效

'INSERT INTO "sometable" ("id", "createdAt", "updatedAt", "custom_data") VALUES (DEFAULT, NOW(), NOW(), \'"{something:\"value\"}"\')';
'INSERT INTO "sometable" ("id", "createdAt", "updatedAt", "custom_data") VALUES (DEFAULT, NOW(), NOW(), \'"{\"aaa\":\"ss15\"}"\')';
Run Code Online (Sandbox Code Playgroud)

最后一个有效,但仅适用于整数值:

'INSERT INTO "sometable" ("id", "createdAt", "updatedAt", "custom_data") VALUES (DEFAULT, NOW(), NOW(), \'"{a:10}"\')';
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多可能的组合来转义类似 JSON 的字符串,甚至插入真正的 JS 对象,但没有任何效果。

Avr*_*ham 7

JSON.stringify()首先尝试:

var customData = JSON.stringify({"name":"George Washington","presidentNo":1});
Run Code Online (Sandbox Code Playgroud)