У меня есть вопрос, связанный с документацией node.js по кэшированию модулей:
Модули кэшируются после первого раза загрузки. Это означает (между прочим), что каждый вызов, требующий ('foo'), получит возвращает тот же самый объект, если он будет разрешать одно и то же файл.
Несколько вызовов, требующих ('foo') , не могут вызывать код модуля выполняется несколько раз. Это важная функция. С этим, "частично выполненные" объекты могут быть возвращены, что позволяет зависимостей для загрузки, даже если они будут вызывать циклы.
Что подразумевается под may
?
Я хочу знать, требуется ли всегда возвращать один и тот же объект. Поэтому, если мне нужен модуль A в app.js
и измените объект экспорта в app.js
(тот, который требует возврата), а после этого потребуется модуль B в app.js
, который сам требует модуля A, будет ли всегда получать модифицированную версию этого объекта или новую?
// 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');