通过模块导出重用 pg-pool

Reusing pg-pool via module exports

阅读文档后:https://github.com/brianc/node-pg-pool,我有点担心重用 new Pool() 方法。

文档建议我需要将 new Pool() 放在 exportsreturn 之前

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

这样我可以重复使用 Pool 直到 idleTimeoutMillisclient.release(),通过使用来自其他文件的 require() 例如:

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

如果这是正确的,它是如何工作的? node.js 是否缓存 new Pool(),因为它不在 module.exports 中?

是的,它被有效地缓存了,因为你只创建了一次(并且节点缓存模块)并且你总是在导出的方法中引用同一个实例。