У мене є питання, пов’язане з документацією на node.js щодо кешування модулів :
Модулі кешуються після першого завантаження. Це означає (серед іншого), що кожен виклик, який вимагає ('foo'), поверне точно той самий об’єкт , якби він вирішив би той самий файл.
Декілька викликів, які вимагають ("foo"), можуть не спричинити код модуля кілька разів. Це важлива особливість. З його допомогою "частково зроблені" об'єкти можна повернути, таким чином дозволяючи завантажувати перехідні залежності навіть тоді, коли вони спричинять цикли.
Що означає may?
Я хочу знати, якщо вимога завжди поверне один і той же об’єкт. Таким чином , в разі , якщо я потрібен модуль A в app.jsі змінити об'єкт експорту всередині app.js(той , який вимагає повернення) і після цього потрібно модуль B в app.jsтому , що саме по собі вимагає модуль А , Я завжди отримати модифіковану версію цього об'єкта, або новий один?
// 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');