Ошибка «значения запроса должны быть массивом» в nodejs? - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю на сервере узла. Я хочу извлечь данные из локальной базы данных postgreSQL. Имеет две таблицы: account и accountCLI. Нижеприведенное работает нормально с терминалом psql, но показывает ошибки «значения запроса должны быть массивом», когда я пытаюсь получить доступ через nodejs.

SELECT username, array_to_string(array(select phonenumber from accountCLI where accountCLI.ccaiuser_id = account.ccaiuser_id), ', ') as PhoneNumber, projectid FROM account;

Так я инициализировался в nodejs

 const getCCAIUsers = (request, response) => {
  pool.query('SELECT username, array_to_string(array(select phonenumber from accountCLI where accountCLI.ccaiuser_id = account.ccaiuser_id), ', ') as PhoneNumber, projectid FROM account', (error, results) => {
    if (error) {
      throw error
    }
    response.status(200).json(results.rows)
  })
}

Когда я выполнил запрос в терминале postgres, он отлично работает:

enter image description here

Но это показывает ошибку в node.js enter image description here

Я прочитал множество статей и понял, что это может параметризоваться запрос, но не знаю, как инициализировать в среде узла. Пожалуйста, помогите?

1 Ответ

0 голосов
/ 24 апреля 2020

Вы не можете включить ' в строку, ограниченную ' без обратной косой черты sh перед (\'). Я считаю, что это будет работать:

const getCCAIUsers = (request, response) => {
  pool.query("SELECT username, array_to_string(array(select phonenumber from accountCLI where accountCLI.ccaiuser_id = account.ccaiuser_id), ', ') as PhoneNumber, projectid FROM account", [], (error, results) => {
    if (error) {
      throw error
    }
    response.status(200).json(results.rows)
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...