【发布时间】:2020-02-05 21:33:04
【问题描述】:
我有一个带有数组列myarray text[] 的表。
我创建了一个用于插入数组的端点
exports.createVaraus = async (id, myarray) =>$ try {
const result = await client.query('INSERT INTO mytable (id, myarray) VALUES ($1, $2) RETURNING id',
[id, myarray]
);
return result.rows[0]
} catch (err) {
throw new Error(err);
}
}
现在,当我使用以下 JSON 与邮递员进行 POST 时:
{
"id": 1,
"myarray": {"column1": "test"}
}
我收到以下错误:
“消息”:“错误:格式错误的数组文字: \"{\"column1\":\"test\"}\""
出了什么问题以及如何正确地做到这一点?
【问题讨论】:
-
第一
{"column1": "test"}真的不是一个数组,它是一个对象,数组看起来像["val1", "val2"],第二:你的列在数据库中的类型是什么?另外,我建议使用json字段,因为从后端(js、java 等)使用它要容易得多。 -
将数组发布到 ["val1", "val2"]。使用 PUT 时出现错误:"message":"error: invalid input syntax for type integer: \"{\"myarray \":[\"8-10\"]}\""
-
mytable在SQL中是如何定义的?您使用的是什么 nodejs 框架,请求正文是如何传递给您的createVaraus函数的? -
已回答您要求的详细信息。很难,我真的不明白这个错误,因为该列的类型不是整数而是文本。
-
也许我的 JSON 语法有误。有人知道如何正确放入 JSON 数组吗?
标签: node.js postgresql postman