@denlem
Programmer

Node.js + mysql вложенные запросы, где ошибка?

Подскажите в чем ошибка? Не могу понять, вроде бы правильный код, но второй запрос на срабатывает.
выдает ошибку: Cannot enqueue Query after invoking quit
var mysql = require('mysql');
var connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : '',
        database : 'vchat'
    });
	
	connection.query('SELECT * from therooms', function(err, rows, fields) {
		if (!err){
		   connection.query('SELECT roomid from therooms', function(errw, rowsw, fieldsw) {
			   if (!errw){
				   console.log('INNER RESULT: '+rowsw);
			   }else{
					console.log('2Error while performing Query.'+errw);
				}
			});
		}else{
			console.log('1Error while performing Query.');
		}
	});

Такую ошибку валит из второго запроса:
2Error while performing Query.Error: Cannot enqueue Query after invoking quit
  • Вопрос задан
  • 1431 просмотр
Пригласить эксперта
Ответы на вопрос 2
@denlem Автор вопроса
Programmer
Решение такое:
Нужно было удалить connection.end() после первого connection.query().
Соединение закрывалось и асинхронный вызов второй срабатывал после закрытия соединения.
Потому соединение нужно либо закрывать правильно (внутри connection.query) , либо не закрывать вообще если скрипт работает постоянно
Ответ написан
Комментировать
edli007
@edli007
full stack, team lead
попробуйте
https://github.com/felixge/node-mysql#pooling-conn...

Но вообще зачем вам мускул на ноде? все эти запросы.. не лень их писать? проще монга, где использован тотже JS
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы