powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Node.js и MySQL: соединения
4 сообщений из 4, страница 1 из 1
Node.js и MySQL: соединения
    #38042388
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скрипт Node.js планируется использовать в роли демона. В качестве СУБД он использует MySQL. Как это лучше всего правильно сделать? Для каждого запроса новое подключение поднимать и закрывать после серии запросов (как в PHP)? Или одно поднять, но периодически следить, чтобы не отвалилось, и перезапускать при надобности?
Пока что вижу вот такой велосипед:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var mysql = require('mysql');
function reconnect_db(){
	db = mysql.createConnection({host:'localhost',user:'tester',password:'test',database:'test'});
	db.on('error', function(err){
		if(err.code == 'PROTOCOL_CONNECTION_LOST') db = reconnect_db();
		else throw err;
	});
	return db;
}
var db = reconnect_db();


При отваливании соединения он ловит coбытие 'PROTOCOL_CONNECTION_LOST' и создаёт новое соединение под тем же именем.
Какой вариант лучше всего использовать?
...
Рейтинг: 0 / 0
Node.js и MySQL: соединения
    #38042446
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переоткрывать, а цикл переоткрытий как-нибудь ограничить или переделать на таймер, иначе однажды этот ваш велосипед свалится с ошибкой переполнения стека.
...
Рейтинг: 0 / 0
Node.js и MySQL: соединения
    #38042548
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyсвалится с ошибкой переполнения стека.c такой ошибкой точно не свалится.
обработчик в db.on вызывается после того, как reconnect_db завершился, т.е. там нет нагромождения стека вложенными вызовами.
Но ограничить, конечно, надо.

Модератор: Тема перенесена из форума "HTML, JavaScript, VBScript, CSS".
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Node.js и MySQL: соединения
    #39029895
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня тоже интересует этот вопрос.
Например клиент запустил приложение,
соединился с сервером и начинает работать.
Сервер запустил под пользователем один процесс и закрепил его за ним.
Заводит какие-то данные в БД - посылает серверу какое-то действие.
Потом делает запрос серверу для получения каких то данных - опять какое-то действие .
и т.д.
Здесь как бы просится одно соединение и все.
Закончил явно работу с приложением, т.е. закрыл соединение,
сервер закрыл закрепленный процесс пользователя.

Так как же быть ? Один раз соединился, или при каждом действии ?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Node.js и MySQL: соединения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]