2014-10-20 2 views
2

Я запускаю запрос выбора с использованием pg, node.js и hapi и его работы.
но как я могу вернуть строки?
return rows postgresql using node.js и hapi

Выбранное:

var client = new pg.Client(conString); 
     client.connect(function(err,done) { 

      if (err) { 
       return console.error('could not connect to postgres', err); 
      } 
     }) 


function fun(query){ 
client.query(query, function (err, result,done) { 
       if (err) { 
        console.error('error running query', err); 
        return; 
       } 
       else{ 

        result.rowAsArray=true; 
        console.log(result.rows[0]); 
        data=result.rows; 
      } 

      }); 
      return data 

     } 
} 

но его возвращение объекта ничем,
Что такое правильный путь?
Спасибо.

ответ

1

Вам необходимо пройти через результирующий набор.

function fun(query) { 
    var data = []; 

    var sql = client.query(query, function(err, result) { 
    if (err) { 
     console.error('error running query', err); 
     return; 
    } 
    }); 

    sql.on('row', function(row) { 
    console.log(row); 
    data.push(row); 
    } 

    return data; 
} 
+0

Я получаю эту ошибку: ** TypeError: Object [object Object] не имеет метода 'on' **. Что я могу сделать? – user3937548

+0

Я исправил ответ. Обработчик события 'on row' должен быть вне функции запроса. Но на самом деле ваш подход был хорошим. Вы должны уметь назначать 'data = result.rows', а затем возвращать' data'. Какова ценность 'result.rowCount'? –

+0

Ошибка теперь: ** TypeError: Uncaught error: Object select * from sponsors не имеет метода 'on' **, из которого происходит on()? – user3937548