簡體   English   中英

節點模塊。 私有變量被重置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM