如何在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
。