如何在Express上重新加载一个文件而不重新启动?

时间:2015-08-10 21:49:32

标签: node.js express fs

我使用fs.appendFileSync(...)将新路由附加到路由JavaScript文件,但是,由于需要重新启动Node.Js来重新加载文件,因此无法访问附加路由。我只需要重新加载正在附加的文件。

var express = require('express');
var router = express.Router();

module.exports = router;

/* New Routes are appended here.
Example:

router.get('/bobby', function(req, res, next){

});
 */

我已经在Stack Overflow上搜索了重新加载文件的方法而没有重新启动服务器,但所有问题只涉及自动重新加载开发,而不是真实的。我已经看到了Nodemon和Node-Supervisor的建议,但是那些人认为它只是用于开发。

这可能是一个愚蠢的问题,但我不知道如何解决它。

感谢您的阅读。

1 个答案:

答案 0 :(得分:3)

您可以使用require-reload来执行此操作。您应该有一个文件,您可以在其中导入要添加新代码的router.js模块,该文件应如下所示:

var reload = require('require-reload')(require),
var router = reload('router.js');

每次添加新代码时都应该这样做:

try {
    router = reload('router.js');
} catch (e) {
    console.error("Failed to reload router.js! Error: ", e);
}

express-route-refresh模块也可以派上用场。事实上,在内部它也使用require-reload