首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS、pg-promise和数组作为参数

NodeJS、pg-promise和数组作为参数
EN

Stack Overflow用户
提问于 2018-07-02 17:47:41
回答 1查看 1K关注 0票数 2

运行NodeJSpg-promise

我有一个数组:

代码语言:javascript
复制
let my_array = new array('x', 'y', 'z');

我尝试使用pg-promise将其作为参数传递给PostgreSQL查询

代码语言:javascript
复制
db_webhooks.any('SELECT cars FROM my_cars WHERE id IN ($1)', [my_array])
  .then...

但由于类型错误而失败。我尝试对数组执行.join操作,但也得到了错误,因为它生成的是字符串'x,y,z'而不是'x','y','z'

打印出调用的debug/query给我:

代码语言:javascript
复制
QUERY: SELECT cars FROM my_cars WHERE id IN (array['x','y','z'])

这应该是:

代码语言:javascript
复制
QUERY: SELECT cars FROM my_cars WHERE id IN ('x','y','z')
EN

回答 1

Stack Overflow用户

发布于 2018-07-04 00:39:37

该库支持用于此目的的CSV Filter

代码语言:javascript
复制
await db.any('SELECT cars FROM my_cars WHERE id IN ($1:csv)', [my_array])
/*=> SELECT cars FROM my_cars WHERE id IN ('x', 'y', 'z') */

或者您也可以使用:list,这是相同的:

代码语言:javascript
复制
await db.any('SELECT cars FROM my_cars WHERE id IN ($1:list)', [my_array])
/*=> SELECT cars FROM my_cars WHERE id IN ('x', 'y', 'z') */
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51133309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档