[英]Node module. Private variables are reset
似乎我的節點模塊中的私有變量正在“重置”。 例如,我在模塊中有以下代碼
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
一個模塊時,所有私有變量會怎樣?
編輯
我正在使用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();
從node.js
文檔中: http : //nodejs.org/api/modules.html
該模塊本地的變量將是私有的,就像該模塊包裝在函數中一樣。
因此,您的變量基本上只存在於模塊代表的Clouse內部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.