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

时间:2016-02-18 20:32:32

标签: javascript node.js module require

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

在prectice中,它看起来像这样:

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

1 个答案:

答案 0 :(得分:1)

虽然这是不寻常的练习,但它在函数内require完全可以接受。

没有要求在文件顶部执行此操作,并且变量作用域将按预期工作。