Win*_*ade 5 javascript require node.js
所以在我的nodejs服务器文件中我有一行:
tools=require("./tools.js");
Run Code Online (Sandbox Code Playgroud)
工具文件包含我改变的功能和类似的东西,所以我想的不是每次我改变一些东西时重新启动服务器,我可以简单地为我添加一些方法来重新使用tools.js,所以我做了.但是现在的问题是,当我启动程序时,更改tools.js并使其重新需要它,它再次需要它,就好像它仍然处于首次需要它时的状态.什么?
编辑:我不想在文件更改时重新启动应用程序,因为这与重新启动服务器相同,这是我想要阻止的!所以我需要一些东西,让我重新要求它,忽略模块缓存或其他什么.
有什么想法可以帮助我吗?
Tee*_*nen 12
如果您不想重新启动应用程序,请在每次需要时执行此操作.
var filename = path.resolve('./tools.js');
delete require.cache[filename];
var tools = require('./tools');
Run Code Online (Sandbox Code Playgroud)
这为我解决了这个问题:
let tools = require("./tools.js");
delete require.cache[require.resolve("./tools.js")];
tools = require("./tools.js");
Run Code Online (Sandbox Code Playgroud)
相信这个答案
如果我理解正确的话,那么您正在遇到 Node 的模块缓存。http://nodejs.org/docs/latest/api/modules.html#modules_caching
如果可以的话,您可能想寻找一个适合 Node 的重新加载器。例如,请参阅https://github.com/isaacs/node-supervisor 。
| 归档时间: |
|
| 查看次数: |
1835 次 |
| 最近记录: |