2016-08-21 4 views
3

Après avoir lu les documents: https://github.com/brianc/node-pg-pool, je suis légèrement préoccupé par la réutilisation de la méthode new Pool().Réutilisation de pg-pool via les exportations de module

Les docs suggère que je dois placer le new Pool() avant exports et return comme si

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

De cette façon, je peux réutiliser Pool jusqu'à ce que le idleTimeoutMillis ou client.release(), en utilisant require() d'autres fichiers Par exemple:

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

Si cela est correct, h Comment ça marche? Est-ce que node.js met en cache le new Pool(), car il n'est pas à l'intérieur module.exports?

Répondre

3

Oui, il est efficacement mis en cache puisque vous le créez exactement une fois (et le nœud met en cache des modules) et vous faites toujours référence à cette même instance dans votre méthode exportée.

+0

Merci, cela signifie que je devrais toujours exporter le résultat sans dépendances, etc ...? – Antartica

+0

Je ne comprends pas votre question. – mscdex

+0

Désolé, en fait, après avoir testé ce code, j'obtiens 'TypeError: connect.query n'est pas une fonction'. Il semble que le pool ne soit pas initialisé avant 'require()'. Savez-vous ce qui ne va pas? Référence: https://github.com/brianc/node-pg-pool#a-note-on-instances – Antartica