只能在监听器函数中加载脚本/模块会导致问题?

My Express应用程序包含在特定情况下使用的JS代码片段; 确切地说,只有当来自某个网​​站的请求即将到来时。

在实践中,它看起来像这样:

router.post('/', function(req, res) { res.setHeader('Content-Type', 'application/json'); switch(req.body.source){ case "/site1": var sitescr_a = require('sitesc_a'); sitescr_a.DoStuff(); break; case "/site2": var sitescr_b = require('sitesc_b'); sitescr_b.DoStuff(); break; }; } 

当然,这意味着在其他情况下sitescr_a.DoStuff()sitescr_b.DoStuff()都不可用 – 这是我的目标,因为这些是特定的脚本 – 但是会导致其他问题吗? 或者这是一种被认为安全的方法?

虽然这是一种不寻常的做法,但是在function内部require是完全可以接受的。

没有必要在文件的顶部执行此操作,并且variables范围将按照您的预期工作。