通过模块导出重用 pg-pool
Reusing pg-pool via module exports
阅读文档后: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
中?
是的,它被有效地缓存了,因为你只创建了一次(并且节点缓存模块)并且你总是在导出的方法中引用同一个实例。
阅读文档后: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
中?
是的,它被有效地缓存了,因为你只创建了一次(并且节点缓存模块)并且你总是在导出的方法中引用同一个实例。