仅在侦听器函数中加载 scripts/modules 会导致问题吗?
Can loading scripts/modules only within a listener function cause issues?
我的 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()
都不可用 - 这是我的目标,因为那些是特定的脚本 - 但它会导致任何其他问题吗?还是安全的方法?
虽然这是不寻常的做法,但require
在函数内部完全可以接受。
不需要在文件顶部执行此操作,变量作用域将按您预期的方式工作。
我的 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()
都不可用 - 这是我的目标,因为那些是特定的脚本 - 但它会导致任何其他问题吗?还是安全的方法?
虽然这是不寻常的做法,但require
在函数内部完全可以接受。
不需要在文件顶部执行此操作,变量作用域将按您预期的方式工作。