欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nodejs清除require缓存 delete require.cache

程序员文章站 2022-03-08 14:07:51
...

nodejs清除require缓存 delete require.cache

开发nodejs应用时会面临一个麻烦的事情,就是修改了配置数据之后,必须重启服务器才能看到修改后的结果。

于是问题来了,挖掘机哪家强?噢,no! no! no!

怎么做到修改文件之后,自动重启服务器。

 

server.js中的片段:

var port = process.env.port || 1337; app.listen(port); console.log("server start in " + port); exports.app = app;

 

假定我们现在是这样的:

 

app.js的片段:

var app = require('./server.js');

 

如果我们在server.js中启动了服务器,我们停止服务器可以在app.js中调用

app.app.close()

 

但是当我们重新引入server.js

app = require('./server.js')

的时候会发现并不是用的最新的server.js文件,原因是require的缓存机制,在第一次调用require('./server.js')的时候缓存下来了。

这个时候怎么办?

 

下面的代码解决了这个问题:

delete require.cache[require.resolve('./server.js')]; app = require('./server.js');

 

这个require.resolve 相当于把相对路径转化成绝对路径,避免了自己手写的绝对路径跟cache里的key不一致的问题

相关标签: node.js