Decache Node.JS,“Unrequire”问题

时间:2015-12-01 20:29:26

标签: javascript node.js caching module

我正在尝试创建一个能够通过模块decache删除模块的脚本。

经过大量研究后我发现这是可能的,每个人都将其描述为使用不同于正常的需要语法。

不幸的是,我尝试了所有不同的方法,但似乎没有任何东西可以解密该模块。

这是代码。

    \\server.js
    var plugins = require(__dirname + '\\plugins\\catelog.js');

    console.log('server started');
    plugins.magic();
    plugins.decache('./log/log.js');
    plugins.magic();

以下是我的项目所需的所有要求的清单。

   \\plugins\catelog.js
     var nfo = {
      fname: __dirname + '//catelog.js',
      cname: 'Catelog',
      wd: __dirname,
      purpose: 'list of sources for require statement.',
      exuse: "require(wd + '\\httpd.js');"
    };
    console.log(nfo.cname + ' Plugin Mounted Sucsesfully');

    //indecahable entities.
    //essential packages.
    var decache = require('decache');


    //decachable entities.
    //your custom code
    var httpd = require('./httpd/httpd.js');
    var logd = require('./log/log.js');





    module.exports = {
      catelog: nfo,
      httpd: httpd,
      log: logd,
      magic: logd.magic,
      logd: logd.logd,
      decache: decache
    };

以下是我尝试解除的示例日志模块。

\\plugins\log\log.js
var nfo = {
  fname: './log/log.js',
  wd: __dirname,
  cname: 'Logging',
  purpose: 'log server for the main server.',
  exuse: "function(logfile,logtext,err);"
};
var fs = require('fs');
console.log(nfo.cname + ' Plugin Mounted Sucsesfully');
function logd(logfile,logtext,err){
fs.appendFile(__dirname + "../../" + logfile, '\r\n' + logtext, function (err) {
if (err){
 console.log(err);
}
});

};

function magic(text){
console.log('text');
};

module.exports = {
 nfo: nfo,
 logd: logd,
 magic: magic
};

运行代码时,这是输出。

enter image description here

不幸的是,似乎没有任何反应,模块没有被卸载,模块中的功能仍然可以在分解之前和之后调用。

有没有人对为什么会这样做有任何想法?

0 个答案:

没有答案