Możesz sprawić, by eksport był obietnicą zwróconą przez createConnection
połączenie. Zwróć też uwagę, że w ES6 możesz używać skróconych nazw właściwości dla zwięzłości i czytelności:
const mysql = require('promise-mysql');
module.exports = mysql.createConnection({
host,
user,
password,
database
});
Następnie użytkownicy mogą z niego korzystać, wywołując .then
na Obietnicę, np.:
const connectionProm = require('script.js');
connectionProm.then((connection) => {
// do stuff with connection
});
Jeśli nie lubisz dzwonić do .then
wszędzie tam, gdzie używane jest połączenie, alternatywą byłoby użycie iniekcji zależności w celu przekazania połączenia jako argumentów, tak aby .then
połączenia musi istnieć tylko w punkcie wejścia skryptu.
// index.js
connectionProm.then((connection) => {
// do stuff with connection
// pass it around as needed
});
// do NOT import or call connectionProm.then anywhere else