【发布时间】: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)应该通过访问限制来处理。绝对应该避免添加和删除实际功能来“模拟”这种行为,因为它对系统资源有巨大的影响,而且它不是这样做的:)