Penerangan dalam komen kod sangat jelas, jadi tidak akan ada lagi perkara karut di sini, hanya berikan kod:
* Anda boleh menggunakan kaedah berikut untuk mengesan sama ada modul semasa ialah modul utama
* */
if(modul===memerlukan.utama){
console.log("Modul semasa ialah modul utama");
}
//Hasil keluaran: Modul semasa ialah modul utama
//2.js kod
console.log(nama);
exports.name=name;
//1.js kod:
var two=require("./2.js");
//Walaupun ia dirujuk dua kali, output console.log(name) hanya dilaksanakan sekali.
/*require.resolve(str)
* */
var url=require.resolve("./2");
console.log(url);
//Hasil keluaran:E:nodegys2.js
/*memerlukan.cache
* */
var two=require("./2.js");
console.log(cache);
/*Hasil keluaran:
* { 'E:\node\gys\1.js':
{ id: '.',
eksport: {},
ibu bapa: batal,
nama fail: 'E:\node\gys\1.js',
dimuatkan: palsu,
kanak-kanak: [ [Objek] ],
laluan:
[ 'E:\node\gys\node_modules',
'E:\node\node_modules',
'E:\node_modules' ] },
'E:\node\gys\2.js':
{ id: 'E:\node\gys\2.js',
eksport: { nama: 'Dr. Sisi' },
ibu bapa:
{ id: '.',
eksport: {},
ibu bapa: batal,
nama fail: 'E:\node\gys\1.js',
dimuatkan: palsu,
kanak-kanak: [Objek],
laluan: [Objek] },
nama fail: 'E:\node\gys\2.js',
dimuatkan: benar,
kanak-kanak: [],
laluan:
[ 'E:\node\gys\node_modules',
'E:\node\node_modules',
'E:\node_modules' ] } }
* */
var name="Dr. Sisi";
console.log(nama);
//1.js kod
//Apabila kata kunci padam digunakan untuk memadam objek modul yang dicache dalam kawasan cache, kod dalam modul akan dijalankan semula pada kali berikutnya kod penggunaan:
var two=require("./2.js");
console.log("Sebelum pemadaman")
padam require.cache[require.resolve("./2.js")];
console.log("Selepas pemadaman");
var two2=require("./2.js");
/*
* Hasil keluaran:
* Dr Sisi
* Sebelum pemadaman
*Selepas dipadamkan
* Dr Sisi
* */