从动态外部文件运行 Nodejs 函数

geeky_monster

我想知道是否有办法从可能会更改的外部文件运行 Node 函数。

主程序

function read_external(){
    var external = require('./external.js');
    var result = external.result();
    console.log(result);
}

setInterval(function(){
    read_external();
},3000);

External.js ( 初始 )

exports.result = function(){
    return "James"; // Case 1
}

我现在通过输入 node main.js 来运行代码

代码开始运行后,我将 External.js 更改为

exports.result = function(){
    return "Jack"; // Case 2
}

不管变化如何,它一直在打印 James 而不是 Jack。有没有办法编写代码,以便在更改代码时执行新函数?

我需要这个,因为我正在构建一个服务,人们可以在其中提供他们自己的脚本作为 JS 文件,并在他们调用服务中的某个函数时执行,具体取决于调用它的人。

艾哈迈德·坎·古文

您可以在每次调用之前从缓存中删除模块。

var module = require.resolve('./external.js');

function read_external(){
    var external = require(module);
    var result = external.result();
    console.log(result);
}

setInterval(function(){
    delete require.cache[module]; //clear cache
    read_external();
},3000);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章