Nodejs 动态加载 require

nodejs的require是保存在缓存中的,即require一次之后再次require值是不会改变的。

如:

a.js

 var a = 12;
exports.a = a;

test.js

 var aa = require('./a.js');
console.log(aa)
aa.a = 15;
//重新加载还是15
var bb = require('./a.js');
console.log(bb);

执行  node  test.js 得到结果

{ a:  }
{ a: }

如果希望重新require的内容为原来的12则只需删除 requrie中的cache即可

重新修改test.js为

 var aa = require('./a.js');
console.log(aa)
aa.a = 15;
//重新加载还是15
var bb = require('./a.js');
console.log(bb); var path = require('path');
var pwd = path.resolve();
pwd += '/a.js';
//console.log(pwd);
delete require.cache[pwd]; //删除缓存后变为原来值
var cc = require('./a.js');
console.log(cc);

即可得到想要的结果:

{ a:  }
{ a: }
{ a: }
上一篇:启用EXCHANGE反垃圾邮件功能和重建EXCHANGE邮件系统帐号


下一篇:hibernate 和 jdbc 优缺点对比