Javascript 如何在PSQL中存储数组,并将其作为参数$1传递给db查询

Javascript 如何在PSQL中存储数组,并将其作为参数$1传递给db查询,javascript,sql,node.js,arrays,psql,Javascript,Sql,Node.js,Arrays,Psql,我将一个由三个字符串组成的一维数组传递给函数,看起来如下所示: [ '#masprofundo', '#massensual', '#eclectic' ] 数据列声明如下: tags TEXT [] 这是我的职责: const query = `INSERT INTO posts (posted_at, message, link, tags) VALUES (TO_TIMESTAMP($1, 'DD/MM/YYYY HH24:MI'), $2, $3,

我将一个由三个字符串组成的一维数组传递给函数,看起来如下所示:

[ '#masprofundo', '#massensual', '#eclectic' ]
数据列声明如下:

 tags TEXT []
这是我的职责:

const query = `INSERT INTO posts (posted_at, message, link, tags)
                VALUES (TO_TIMESTAMP($1, 'DD/MM/YYYY HH24:MI'), $2, $3, ARRAY [$4])
                RETURNING tags;`;
const params = [timestamp, message, link, tags];
现在,postgres认为我想插入一个包含一个项的数组,它是我的标记数组中所有值的字符串。看起来是这样的:

{ tags: [ '{"#masprofundo","#massensual","#eclectic"}' ] }
我想知道的是,如何防止这种行为,即postGres添加了不必要的额外一层引号和括号?要求进一步澄清;这是我的终端中该行的外观

{"{\"#masprofundo\",\"#massensual\",\"#eclectic\"}"}
我查看了文档,并尝试了一打数组[$4]的变体。据我所见,文档没有详细说明如何将数组作为变量插入。是否需要进行一些分解?我传递的数组大小不一,有时是空的


非常感谢您的帮助。

您正在将JS数组作为声明的DB数组的元素传递。你试过用4美元代替数组[$4]吗?非常感谢,你解决了它