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

时间:2017-05-02 16:52:24

标签: node.js postgresql 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\"}"\')';

最后一个有效,但只能使用整数值:

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

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

1 个答案:

答案 0 :(得分:3)

首先尝试JSON.stringify()

var customData = JSON.stringify({"name":"George Washington","presidentNo":1});