看起來好像我的私有變量在節點模塊中被「重置」。例如。我有一個模塊節點模塊。私有變量被重置
var exec = require('child_process').exec;
var process;
module.exports.start = function() {
if (!process) {
process = exec('Some process');
}
};
module.exports.stop = function() {
if (process) {
process.kill();
}
};
,我面對的是,如果我叫start
後stop
功能process
變量是未定義的問題在下面的代碼。
很明顯,解決這個問題的方法是定義一個對象/類並將其暴露在模塊中。
但現在我很想知道模塊如何在節點中工作。當一個模塊爲require
'd時,所有私有變量會發生什麼?
編輯
我使用這個模塊從REPL測試,但用法的例子也只是
var my_module = require('./my_module');
// the child process starts fine
my_module.start();
// after some time
// but does not end
my_module.stop();
顯示使用此模塊的代碼... – Justin808
也許'exec'只是*不*返回'undefined'? – Bergi
已經顯示了一個例子。 @Bergi no exec返回一個ChildProcess對象。 – Umair