Mysql
 sql >> Database >  >> RDS >> Mysql

Modulo Esportazione risultato di asincrono fn

Puoi fare in modo che l'esportazione sia la promessa restituita da createConnection chiamata. Tieni inoltre presente che in ES6 puoi utilizzare nomi di proprietà abbreviati per concisione e leggibilità:

const mysql = require('promise-mysql');
module.exports = mysql.createConnection({
    host,
    user,
    password,
    database
});

Quindi gli utenti possono usarlo chiamando .then sulla Promessa, ad esempio:

const connectionProm = require('script.js');
connectionProm.then((connection) => {
  // do stuff with connection
});

Se non ti piace dover chiamare .then ovunque venga utilizzata la connessione, un'alternativa sarebbe utilizzare l'iniezione di dipendenza per passare la connessione come argomenti, in modo che la connessione sia .then deve esistere solo nel punto di ingresso dello script.

// index.js
connectionProm.then((connection) => {
  // do stuff with connection
  // pass it around as needed
});

// do NOT import or call connectionProm.then anywhere else