Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   NodeJS и MySQL, pool connetctions (https://javascript.ru/forum/node-js-io-js/57252-nodejs-i-mysql-pool-connetctions.html)

Sanu0074 27.07.2015 00:39

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 - сыры пока что, очень надеюсь на детальное изъяснение решения по данной задаче.

Vlasenko Fedor 27.07.2015 01:51

// Подключение к базе файл 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);
});


Часовой пояс GMT +3, время: 06:01.