【问题标题】:In nodejs once the module have been loaded is it possible to unload the modules?在 nodejs 中,一旦模块被加载,是否可以卸载模块?
【发布时间】:2017-07-23 09:53:34
【问题描述】:
app.post('/userlogin',function(req,res){

var Module1=require('./lib/module1');
    app.use(Module1);
var Module2=require('./lib/module2');
    app.use(Module2);
});

一旦模块被加载,它们可以被卸载或销毁吗? 示例:

app.get('/logout',function(req,res){

// some function to unload the modules  
})

【问题讨论】:

  • 我不知道你是否真的想这样做。在我看来,这似乎需要做很多工作,这是不必要的。也许您可以告诉我们您为什么要这样做?
  • 'var Module1=require('./lib/module1') app.use(Module1)' ;该模块包含到某个位置的路由(例如:localhost:1000/testpage)。我想要的是一旦启动 /logout 路由 (localhost:1000/testpage) 就不应该发生。我尝试使用上述方法,但是一旦模块被卸载,我仍然可以路由,这就是我想要实现的目标
  • 我认为您不应该通过添加和删除功能来实现这一点。这应该使用安全上下文来完成,如果用户登录,您只允许访问“testpage”。
  • 我想加载特定于用户的模块,即当用户 A 登录时,他可以加载模块 1 和模块 2,而用户 B 只能加载模块 2。结果,我试图以这样一种方式保持“/注销”,即在路由“/注销”时,所有加载的模块都被卸载,而与用户无关
  • 而正是这种行为(用户 A 可以访问模块 1 和 2,用户 B 只能访问模块 2)应该通过访问限制来处理。绝对应该避免添加和删除实际功能来“模拟”这种行为,因为它对系统资源有巨大的影响,而且它不是这样做的:)

标签: jquery node.js npm


【解决方案1】:

添加和删除功能绝对不是基于用户的访问限制的解决方案,因为多个用户可能同时使用系统。 也很容易出错,这是一个大规模的干预,会对服务器系统产生巨大的影响。

安全上下文会处理所有这些,而不会弄乱您的系统,因为它只是添加在它之上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 2020-05-11
    • 2014-06-16
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多