Повторное использование pg-pool через экспорт модулей

Прочитав документы: https://github.com/brianc/node-pg-pool, я немного обеспокоен повторным использованием new Pool() метод.

Документы предполагают, что мне нужно разместить new Pool() до exports а также return это так

// db.js
const pool = new Pool();
module.exports = () => { return pool; }

Таким образом, я могу использовать повторно Pool до idleTimeoutMillis или же client.release(), используя require() из других файлов, например:

const connect = require('./db')
connect().query(' .... ');  

Если это правильно, как это работает? Кэширует ли node.js new Pool()как бы не внутри module.exports?

2 ответа

Решение

Да, он эффективно кэшируется, так как вы создаете его ровно один раз (и модули кэширования узла), и вы всегда ссылаетесь на тот же экземпляр в экспортированном методе.

Безусловно, создавая экземпляр только один раз, вы разрешаете узлу кэшировать его, а затем поддерживаете последовательную ссылку на этот идентичный экземпляр в экспортируемом методе.

Другие вопросы по тегам