nodejs的require是保存在緩存中的,即require一次之后再次require值是不會改變的。
如:
a.js
1 var a = 12; 2 exports.a = a;
test.js
1 var aa = require('./a.js'); 2 console.log(aa) 3 aa.a = 15; 4 //重新加載還是15 5 var bb = require('./a.js'); 6 console.log(bb);
執行 node test.js 得到結果
{ a: 12 } { a: 15 }
如果希望重新require的內容為原來的12則只需刪除 requrie中的cache即可
重新修改test.js為
1 var aa = require('./a.js'); 2 console.log(aa) 3 aa.a = 15; 4 //重新加載還是15 5 var bb = require('./a.js'); 6 console.log(bb); 7 8 var path = require('path'); 9 var pwd = path.resolve(); 10 pwd += '/a.js'; 11 //console.log(pwd); 12 delete require.cache[pwd]; 13 14 15 //刪除緩存后變為原來值 16 var cc = require('./a.js'); 17 console.log(cc);
即可得到想要的結果:
{ a: 12 } { a: 15 } { a: 12 }