Tengo una pregunta relacionada con la documentación de node.js sobre el almacenamiento en caché del módulo :
Los módulos se almacenan en caché después de la primera vez que se cargan. Esto significa (entre otras cosas) que cada llamada a require ('foo') obtendrá exactamente el mismo objeto devuelto, si se resuelve en el mismo archivo.
Es posible que varias llamadas a require ('foo') no hagan que el código del módulo se ejecute varias veces. Esta es una característica importante. Con él, se pueden devolver objetos "parcialmente hechos", lo que permite que se carguen las dependencias transitivas incluso cuando causarían ciclos.
¿A qué se refiere may?
Quiero saber si require siempre devolverá el mismo objeto. Así que en caso requiero un módulo A en app.jsy cambiar el objeto de exportaciones dentro app.js(la que requiere retornos) y después de que requieren un módulo B en el app.jsque sí requiere módulo A , voy siempre obtener la versión modificada de ese objeto, o un nuevo ¿uno?
// app.js
var a = require('./a');
a.b = 2;
console.log(a.b); //2
var b = require('./b');
console.log(b.b); //2
// a.js
exports.a = 1;
// b.js
module.exports = require('./a');