只能在监听器函数中加载脚本/模块会导致问题?
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范围将按照您的预期工作。