Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2015, 00:39
Аватар для Sanu0074
Аспирант
Отправить личное сообщение для Sanu0074 Посмотреть профиль Найти все сообщения от Sanu0074
 
Регистрация: 16.12.2012
Сообщений: 80

NodeJS и MySQL, pool connetctions
Есть express, установлен модуль mysql, цель: соединиться с базой где-то в каком-то месте один раз, и не делать в разных скриптах, в т.ч. и скриптах других моих модулей подобное:
var mysql = require('mysql');

var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'user',
  password : '1111',
  database : 'test'
});

connection.connect(function(err){
  if(!err) {
    console.log("Database is connected ");
  } else {
    console.log("Error connecting database ");
  }
});

При этом, нужно ли мне использовать pool запросов? Если да, то как правильно к этому подойти? Весь смысл в том, чтобы понять как данное соединение сделать глобальным чтобы его повсеместно использовать, и так чтобы это не вызвало нагрузки на систему и со временем не повесило мускул. p.s. мои знания того как это работает в node.js - сыры пока что, очень надеюсь на детальное изъяснение решения по данной задаче.
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2015, 01:51
Аватар для Poznakomlus
Профессор
Отправить личное сообщение для Poznakomlus Посмотреть профиль Найти все сообщения от Poznakomlus
 
Регистрация: 13.03.2013
Сообщений: 1,211

// Подключение к базе файл mysql.js
var pool = require('mysql').createPool({
    host: 'localhost',
    user: 'user',
    password: 'pass',
    database: 'fregate',
	socketPath: '/var/run/mysqld/mysqld.sock',  // общаемся с mysql через сокеты
    connectionLimit: 100
});
exports.query = function (sql, props) {
    return new Promise(function (resolve, reject) {
        pool.getConnection(function (err, connection) {
            connection.query(
                sql, props,
                function (err, res) {
                    if (err) reject(err);
                    else resolve(res);
                }
            );
            connection.release();
        });
    });
};

Пример использования другой файл
var query = require('./mysql').query;

query('SELECT * FROM cms_users WHERE id = ?', [5]).then(function (res) {
    // здесь код будет выполнятся после запроса
    console.log('Result');
    console.log(res);
}).catch(function (err) {
    // здесь будет сообщение об ошибке
    console.log('Error');
    console.log(err);
});

Последний раз редактировалось Poznakomlus, 27.07.2015 в 02:16.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nodejs и mysql Chrome AJAX и COMET 6 03.08.2014 16:23
WebSocket - nodejs SVARAI AJAX и COMET 2 17.02.2014 06:41
Не подключается MySql super-php Серверные языки и технологии 1 02.08.2013 00:26
немного об nodejs qwermjk AJAX и COMET 5 15.02.2013 08:57
Comet: NodeJS - с чего начать разработку? Vulkan AJAX и COMET 13 27.11.2010 18:25