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 }