NodeJS, pg-обещание и массив в качестве параметра - PullRequest
0 голосов
/ 02 июля 2018

Бег NodeJS и pg-promise.

У меня есть массив:

let my_array = new array('x', 'y', 'z');

Я пытаюсь передать это как параметр в мой запрос PostgreSQL с pg-promise:

db_webhooks.any('SELECT cars FROM my_cars WHERE id IN ($1)', [my_array])
  .then...

Но это не с ошибкой типа. Я пытался .join массив, но также получаю ошибку, так как это приводит к строке 'x,y,z' вместо 'x','y','z'.

Распечатка вызванной отладки / запроса дает мне:

QUERY: SELECT cars FROM my_cars WHERE id IN (array['x','y','z'])

Это должно быть:

QUERY: SELECT cars FROM my_cars WHERE id IN ('x','y','z')

1 Ответ

0 голосов
/ 03 июля 2018

Библиотека поддерживает CSV Filter для этой цели:

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, то же самое:

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') */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...