Задать вопрос
@okso

Node.js + node-sqlite3. Как передать сформированный запрос?

Делаю запрос к БД через модуль node-sqlite3.
Часть кода:
var rowPool = [];
var rowPool2 = [{id:0}];
var rowPool3 = [];
var select='SELECT rowid AS id, title, kod FROM telefon_ron';
var select2='SELECT rowid AS id, title FROM telefon_otdel WHERE ron_id=1';

db.serialize(function(){

  db.all(select, function(err, row) {
    rowPool=row;
    console.log(rowPool); //Выводит содержимое
  });

  db.all(select2, function(err, row) {
    rowPool2=row;
    console.log(rowPool2); //Выводит содержимое
    console.log(rowPool2[0].id); //Выводит: 4
    //select3=`SELECT rowid AS id, title FROM telefon_potdel WHERE otdel_id=${rowPool2[0].id}`;
  });

   db.all(`SELECT rowid AS id, title FROM telefon_potdel WHERE otdel_id=${rowPool2[0].id}`, function(err, row) {
     console.log(rowPool2[0].id); //Выводит: 4
     rowPool3=row;
     console.log(rowPool3);  //Выводит пустой массив: []
   });

});

Почему не работает запрос в последнем db.all()? Как исправить?
Если в самом начала объявить var rowPool2 = [{id:4}], то console.log(rowPool3) выведет содержимое БД на основе переданного запроса.
Если в последний db.all() передать не строку, а переменную select3, то выведет ошибку:
TypeError: SQL query expected
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы