可以通过eval运行什么来重新加载Node.js中的文件?

时间:2018-03-07 01:52:45

标签: javascript node.js

我有一项服务,我希望尽可能经常地跟上并重新启动它需要几秒钟,更不用说中断任何正在进行的进程。如果我对文件做了一些小改动并希望重新加载,我可以用eval()代码做什么代码?

例如,如果我有rng.js

module.exports = function() {
    return Math.floor(Math.random() * 4);
}

并在另一个文件中,index.js

const rng = require('./rng.js');
console.log(rng());

如果我将rng.js中的4更改为3,显然实时代码仍然使用4,所以它不会改变,所以如何重新加载文件,假设我可以访问eval()而脚本正在运行?

1 个答案:

答案 0 :(得分:0)

对于给定的示例,在节点中,您可以传递运行时参数。

  

node index.js 5(此处为5是运行时参数)

index.js

    JSONObject jObj = new JSONObject(result);
    JSONArray rows = jObj.getJSONArray("rows");
    JSONObject row = rows.getJSONObject(0);
    JSONArray elementsArray = row.getJSONArray("elements");
    JSONObject element = elementsArray.getJSONObject(0);
    JSONObject distance = element.getJSONObject("distance");
    String est = distance.getString("text");
    String vals = distance.getString("value");

rng.js

const rng = require('./rng.js');
var command = process.argv[2];
console.log(command);
console.log(rng(process.argv[2]));

或者您可以使用https://www.npmjs.com/package/nodemon加载实时更改。