nodejs清除require缓存 delete require.cache

nodejs清除require缓存 delete require.cache
发布于
# 编程

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');


找到 0 条评论