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

我使用fs.appendFileSync(…)将路由追加到路由JavaScript文件中,但是,由于需要重新启动Node.J以重新加载文件,所以不能访问附加的路由。 我只需要重新加载正在追加的文件。

var express = require('express'); var router = express.Router(); module.exports = router; /* New Routes are appended here. Example: router.get('/bobby', function(req, res, next){ }); */ 

我已经search堆栈溢出的方式重新加载文件,而无需重新启动服务器,但所有的问题只涉及自动重新加载开发,而不是真正的事情。 我已经看到了关于Nodemon和Node-Supervisor的build议,但是这些build议只是为了开发。

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

感谢您的阅读。

你可以使用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