postgresql查询在node.js中失败,但在pgadmin中成功

postgresql查询在node.js中失败,但在pgadmin中成功,node.js,postgresql,node-postgres,Node.js,Postgresql,Node Postgres,我有以下postgresql查询: SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN (1,2,3) 它应该选择ID为1、2或3的所有用户。ID类型为bigint。在pgadmin中,此查询的工作方式与它应该的一样,但是使用,我得到以下错误: 错误:bigint类型的输入语法无效:“1,2,3” Node.js代码示例: // I have an array user_ids_ar

我有以下postgresql查询:

SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN (1,2,3)
它应该选择ID为1、2或3的所有用户。ID类型为bigint。在pgadmin中,此查询的工作方式与它应该的一样,但是使用,我得到以下错误:

错误:bigint类型的输入语法无效:“1,2,3”

Node.js代码示例:

// I have an array user_ids_array containing all user ID's
// I convert it to a string using join()
const user_ids = user_ids_array.join(',')

query = "SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN ($1)"

values = [user_ids]

result = await pool.query(query, values)
我想这与user_id(field)是整数(bigint)和user_id是字符串有关,但我不知道如何进行类型转换

我发现了,但我也给出了解决方案,使用
,其中(1,2)
中的一些id


提前谢谢

解决此问题的一种方法是在数组中执行一个不必要的操作

给定当前代码,您的
数组ID
,必须是javascript中的默认数组(不转换为字符串):

请注意,
pool.query
中的
second
参数与当前用例不同

希望能有帮助

在我的项目中,我使用了lib pg。不确定它是否能与
节点postgres
一起工作

const arrayids = [1,2,3]

const sql = "SELECT user_id, username, full_name, avatar, verified FROM users WHERE user_id IN (SELECT UNNEST($1::int[]))"

result = await pool.query(query, [arrayids])