Ho una domanda relativa a the node.js documentation on module caching:Comprensione dei moduli Node.js: più richiede la restituzione dello stesso oggetto?
moduli vengono memorizzate nella cache dopo la prima volta che vengono caricati. Questo significa che (tra le altre cose) otterrà esattamente lo stesso oggetto restituito, se si risolverebbe nello stesso file .
Chiamate multiple per richiedere ('pippo') potrebbe non causare il codice modulo da eseguito più volte. Questa è una caratteristica importante. Con esso è possibile restituire gli oggetti "parzialmente completati", consentendo così il caricamento delle dipendenze transitive anche quando causerebbero cicli.
Cosa si intende con may
?
Desidero sapere se il fabbisogno sarà sempre restituire lo stesso oggetto. Quindi nel caso in cui ho bisogno di un modulo Un in app.js
e cambiare le esportazioni oggetto all'interno app.js
(quello che richiedono i rendimenti) e dopo che richiedono un modulo B in app.js
che si richiede modulo A, sarò sempre ottenere la versione modificata di quell'oggetto o una nuova?
// 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');
Questa frase nei documenti avrebbe potuto essere scritta meglio. Mi sembra che * non * sia uguale a * non consentito a *, cioè * più chiamate da richiedere ('foo') ** non possono ** causare l'esecuzione del codice del modulo più volte *. –