Node.js `其中col IN`带有命名参数
在关于如何使用的示例中,语法如下所示:Node.js `其中col IN`带有命名参数,node.js,postgresql,pg-promise,Node.js,Postgresql,Pg Promise,在关于如何使用的示例中,语法如下所示: const data = [1, 'two', 3, 'four']; db.any('SELECT * FROM table WHERE id IN ($1:csv)', [data]) .then(data => { ... 对于命名参数,我似乎无法使其工作: db.manyOrNone('SELECT widget FROM widgets WHERE id IN ($(ids:list))', { i
const data = [1, 'two', 3, 'four'];
db.any('SELECT * FROM table WHERE id IN ($1:csv)', [data])
.then(data => {
...
对于命名参数,我似乎无法使其工作:
db.manyOrNone('SELECT widget FROM widgets WHERE id IN ($(ids:list))',
{ ids: [1, 2, 3] })
(我使用的是:list
,因为它似乎与:csv
在一起)。
我尝试过各种组合,如:
(语法错误位于或接近“:”)($(ids):列表)
(在“$”处或附近出现语法错误)(${ids:list})
- 博士后:9.5.7
- pg承诺:5.7.1
我将参数更改为
。。。小部件在($(ids:csv))…
中,它现在可以工作了,所以似乎:list
和:csv
是不可互换的。问题是您使用的是一个旧版本的。当前版本是8.4.4,您使用的是5.7.1
别名:list
可与:csv
完全互换,但它的添加时间远晚于v5.7.1
升级至最新版本,它也将与:list
一起使用
还假设当前文档中的所有内容都相应地引用了库的当前版本。示例似乎正确,因此必须关闭其他内容。您应该发布调用查询方法的完整示例,这与您使用该方法的方式完全相同。@vitaly-t我用我在版本中使用的实际筛选器更新了该问题。顺便说一句,美丽的图书馆:)