Получение конкретного значения из mySQL 
		
		
		
		Добрый день. Прошу сильно не пинать... 
	Имеется следующий код: 
var mysql      = require('mysql');
var connection = mysql.createConnection({
    host     : '127.0.0.1',
    user     : 'root',
    password : 'password',
    database : 'maindb'
});
connection.connect();
console.log('connection complete');
connection.query('SELECT * FROM users', function(error, results){
    if (error) throw error;
    console.log(results);
});
//console.log(query);
connection.end();
Результатом выполнения данной команды является: Код: 
	connection completeЕсли выполнить вывод console.log(results.name);, то в консоль возвращается: Код: 
	connection completeВ чем подвох и где можно почитать на эту тему? PS. Я новичок, постигаю все эти вещи в свободное от работы время.  | 
	
		
 Так, как я понял, RowDataPacket является объектом... 
	 | 
	
		
 Неактуально,  
	console.log(results[0].name); Оказывается, я был близок))  | 
	
		
 угу, а сделать запрос SELECT name FROM users; 
	Если надо только name?  | 
	
		
 Цитата: 
	
  | 
	
		
 угу, но какой объект, засоряется и память и замедляется работа бд, конечно в данном случае это не критично, но если глобально, то это если надо килограмм яблок, ты берешь и капусту и огурцы и еще всякой фигни, а надо было только яблоки ), не верно просить из базы все, а потом фильтровать, базой это все надо делать. 
	 | 
	
		
 Lion777, спасибо, я это понимаю :) 
	Решил более не засорять тему и пару дней промучался сам. Как сделать видимым результат запроса за пределами функции? Имеем следующий код: 
var mysql      = require('mysql');
   var connection = mysql.createConnection({
       host     : '127.0.0.1',
       user     : 'root',
       password : 'ПАРОЛЬ',
       database : 'maindb'
   });
   
   connection.connect();
  console.log('Connection complete!');
  
  var querySelectUser = 'SELECT * FROM users';
  res = 'Пока пусто';
  var query = connection.query(querySelectUser, function foo(error, results){
      if (error) throw error;
      //console.log(results[0].name);
      res = results[0].name;
      console.log(res + ' - Это из функции');
      return res;
  });
  
  console.log(query.res + ' - Это должно быть ');
  connection.end();
Каким образом лучше организовать 22 строку? Возвращает undefined, хоть ты тресни...  | 
	
		
 Вот и ещё один человек открыл для себя асинхронность. Годы текут, ничего не меняется... 
	Sebastian Pereiro, "foo" - это функция-коллбэк, она будет вызвана только когда получит результат от базы, т.е. хрензнает когда, может быть спустя годы, если коннект к базе по радиоканалу с луны. К тому времени 22 строка уже давно выполнится своим чередом. Еслиб скрипт ждал результата, то он всё это время бы висел и ни на что не реагировал, а это какбэ противоречит самой сути современного js - асинхронности всего и вся. Для начала дели свой код на функции и вызывай оные последовательно. P.S. В самом современном js для таких случаев ныне применяют promise и async\await, но без понимания базы это всё равно бесполезно, т.к. лишь удобная надстройка над всё той же сутью.  | 
	
		
 Цитата: 
	
  | 
	
		
 Пример? Вот пример: 
	
var mysql  = require('mysql');
function makeRequest(){
   var connection = mysql.createConnection({
       host     : '127.0.0.1',
       user     : 'root',
       password : 'ПАРОЛЬ',
       database : 'maindb'
   });
  connection.connect();
  console.log('Connection complete!');
  
  var querySelectUser = 'SELECT * FROM users';
  var query = connection.query(querySelectUser, function foo(error, results){
      if (error) throw error;
      //console.log(results[0].name);
      var res = results[0].name;
      console.log(res + ' - Это из функции');
	  
      workWithResult(res);
      connection.end();
  });
}
function workWithResult(result){
  console.log(result + ' - Это должно быть ');
}
Если вопрос "как писать код тупо подряд?", ответ - никак. Потому что сами запросы выполняются не подряд, асинхронно. Асинки могут сделать чтоб выглядело примерно подряд, но всё равно потребуются функции-обёртки и промисы. И как я сказал выше, без понимания базы js их трогать вам не надо, зря читали, лучше бы начальный учебник по слову асинхронность открыли.  | 
| Часовой пояс GMT +3, время: 14:13. |