【发布时间】:2021-05-14 13:33:05
【问题描述】:
关于如何在 Node.js 中实现文件自动重新加载的任何想法?我厌倦了每次更改文件时都重新启动服务器。
显然 Node.js 的 require() 函数不会重新加载已经需要的文件,所以我需要做这样的事情:
var sys = require('sys'),
http = require('http'),
posix = require('posix'),
json = require('./json');
var script_name = '/some/path/to/app.js';
this.app = require('./app').app;
process.watchFile(script_name, function(curr, prev){
posix.cat(script_name).addCallback(function(content){
process.compile( content, script_name );
});
});
http.createServer(this.app).listen( 8080 );
在 app.js 文件中我有:
var file = require('./file');
this.app = function(req, res) {
file.serveFile( req, res, 'file.js');
}
但这也不起作用 - 我在 process.compile() 语句中收到一个错误,指出未定义“要求”。 process.compile 正在评估 app.js,但对 node.js 全局变量一无所知。
【问题讨论】:
-
你知道你可以在每个请求上运行这个代码:
Object.keys(require.cache).forEach(function(key) { delete require.cache[key]; }); -
为什么会有两个js文件,
app.js作为服务器文件应该够了吧?
标签: javascript node.js