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 - сыры пока что, очень надеюсь на детальное изъяснение решения по данной задаче. |
// Подключение к базе файл 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, время: 23:36. |