Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Balanser заменить-таки на Balancer, раз уж оно на гитхабе.Connect устанавливается обработчик события error, который бросает полученное исключение? Реализация EventEmitter в Node.js ведет себя так по-умолчанию, но учитывая домены, например.EventEmitter, как прототип Connect, что добавит изящности, избавит от переопределения метода on() и позволит в обработчиках событий обращаться к экземпляру Connect через this, т.к. обработчики событий в EventEmitter выполняются в контексте экземпляра.addQuery лучше обернуть вызов _nextTick() в setImmediate, т.к. помимо добавления запроса в очередь будет сразу произведено и выполнение, что не очень хорошо с точки зрения «асинхронного» API. Аналогично я бы поступил с вызовом el.callback(null, result);, чтобы внутренний колбэк таки завершил свою работу (бросил событие drain), а затем уже был вызван пользовательский обработчик.if(!(typeof query == 'string')) /* => if (typeof query !== 'string') */Balancer можно реализовать, используя принципы, что применяются в Агенте:
Pooling соединений к базе данных на node.js