¿Module.require (…). * Devuelve una copia de module.exports. * O una referencia de él?

En el siguiente código, ¿las variables “db” en session.js y user.js hacen referencia al mismo objeto en db.js, o son copias de él (haciendo conexiones por separado a mi servidor db)?

// db.js var mongojs = require('mongojs'); var db = mongojs('test', ['users', 'sessions']); module.exports.database = db; // session.js var db = require('../db.js').database; ...... // user.js var db = require('../db.js').database; ...... 

¡Gracias!

Cada llamada a require('../db.js') devuelve el mismo objeto, por lo que en su caso solo se creará una única agrupación de conexiones de database .

Tenga en cuenta que la database es en realidad un conjunto de conexiones (5 de forma predeterminada) que se pueden compartir libremente en todo el código, por lo que es probable que esto sea lo que desea.

Vea los documentos aquí .

Un módulo requerido está en caché, por lo que ambos apuntarán al mismo objeto. Documentación relevante de Node.js: Módulos que almacenan documentos en caché .