Javascript 仅在侦听器函数中加载脚本/模块是否会导致问题?

Javascript 仅在侦听器函数中加载脚本/模块是否会导致问题?,javascript,node.js,module,require,Javascript,Node.js,Module,Require,我的Express应用程序包含在特定情况下使用的JS代码片段;确切地说,只有当来自某个站点的请求到来时才可以 在pretice中,它看起来是这样的: router.post('/', function(req, res) { res.setHeader('Content-Type', 'application/json'); switch (req.body.source) { case "/site1": var sitescr_a = require('site

我的Express应用程序包含在特定情况下使用的JS代码片段;确切地说,只有当来自某个站点的请求到来时才可以

在pretice中,它看起来是这样的:

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\u a.DoStuff()
sitescr\u b.DoStuff()
在其他情况下都不可用,这是我的目标,因为这些都是特定的脚本,但它会导致任何其他问题吗?或者它被认为是一种安全的方法?

尽管这是一种不寻常的做法,但在函数内部要求
是完全可以接受的


不需要在文件顶部执行此操作,变量作用域将按照您的预期工作。

您是否忘记在
sitescr\u a
sitescr\u b
定义前面加上
var
?你可能想编辑你的帖子。我从未见过有人这样做,仅此而已。(: