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

Can loading scripts/modules only within a listener function cause issues?

本文关键字:问题 模块 侦听器 函数 脚本 加载      更新时间:2023-09-26

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

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

不需要在文件顶部执行此操作,变量范围将按预期工作。