Всем добрый вечер. Уже долгое время бьюсь с одной козявкой, которая появляется при попытке осуществить запрос в другом js файле. Покажу на примере.
database.js
var mysql = require("mysql");
module.exports = {
Pool : null,
Connect : function(callback) {
this.Pool = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'admin',
database: 'server'
})
this.Pool.connect(function(err) {
if(err) {
console.log('[Database ERROR] ' + err.message);
throw err;
} else {
console.log(`\x1b[92m[DATABASE]\x1b[0m Соединение установлено.`);
}
})
}
}
main.js
require('./module.js');
const DB = require('./database.js');
DB.Connect(() => {
DB.Pool.query("CREATE TABLE IF NOT EXISTS `mdb_players` (`ID` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `Name` varchar(24) NOT NULL, `Money` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;", (err) => {
if (err) console.log('\x1b[91m[Database]\x1b[0m ' + err.message);
});
});
Теперь начинается следующий этап, в который я не могу вникнуть. К примеру у нас есть файл module.js. Именно в этом файле мне нужно осуществить запрос, повторно не подключаясь к бд, то есть не использовать DB.Connect(), а сразу использовать DB.query().
module.js
const DB = require('./database.js')
DB.Pool.query("CREATE TABLE IF NOT EXISTS `mdb_players` (`UID` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `Name` varchar(24) NOT NULL, `Money` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;", (err) => {
if (err) console.log('\x1b[91m[Database]\x1b[0m ' + err.message);
});
Можно было бы использовать DB.Connect() в других файлах, но тогда в консоли будет неоднократно выводиться сообщение с установленным соединением.