Du kan få eksporten til at være det løfte, der returneres af createConnection
opkald. Bemærk også, at du i ES6 kan bruge stenografiske egenskabsnavne for kortfattethed og læsbarhed:
const mysql = require('promise-mysql');
module.exports = mysql.createConnection({
host,
user,
password,
database
});
Så kan brugere bruge det ved at kalde .then
på løftet, f.eks.:
const connectionProm = require('script.js');
connectionProm.then((connection) => {
// do stuff with connection
});
Hvis du ikke kan lide at skulle ringe til .then
overalt hvor forbindelsen bruges, ville et alternativ være at bruge afhængighedsinjektion til at videregive forbindelsen som argumenter, så forbindelsens .then
skal kun eksistere i scriptets indgangspunkt.
// index.js
connectionProm.then((connection) => {
// do stuff with connection
// pass it around as needed
});
// do NOT import or call connectionProm.then anywhere else