Повторное использование 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 ответа
Да, он эффективно кэшируется, так как вы создаете его ровно один раз (и модули кэширования узла), и вы всегда ссылаетесь на тот же экземпляр в экспортированном методе.
Безусловно, создавая экземпляр только один раз, вы разрешаете узлу кэшировать его, а затем поддерживаете последовательную ссылку на этот идентичный экземпляр в экспортируемом методе.