如何在Javascript/nodejs中声明实例变量?

如何在Javascript/nodejs中声明实例变量?,javascript,node.js,Javascript,Node.js,我正在以每小时一次的频率运行一个守护进程。此代码应跟踪所有孤立客户端,如果某个客户端已孤立12小时,则应将其删除。代码以每小时一次的频率运行,因此我需要每小时保存数据,以便在下一个小时内可用。由于我不熟悉javascript,我尝试声明一个全局变量deleteOrientedClients=new Map()。 我的以下全局变量deleteOrientedClients是否会保存并在每次触发代码时可用 var deleteOrphanedClients = new Map(); // Dele

我正在以每小时一次的频率运行一个守护进程。此代码应跟踪所有孤立客户端,如果某个客户端已孤立12小时,则应将其删除。代码以每小时一次的频率运行,因此我需要每小时保存数据,以便在下一个小时内可用。由于我不熟悉javascript,我尝试声明一个全局变量deleteOrientedClients=new Map()。 我的以下全局变量deleteOrientedClients是否会保存并在每次触发代码时可用

var deleteOrphanedClients = new Map();

// Delete idle client without any parent.  
exports.cleanupClients = function (clients, callback) {
    for (int i = 0; i < clients.length; i++) {
        // this checks if client is orphaned.
        if (clients[i]["parent"] == undefined) {
            if (deleteOrphanedClients[clients[i]] == undefined) {
                deleteOrphanedClients[clients[i]] = new Date();
            }
        }
    }

    // delete all clients older than 12 hours from deleteOrphanedClients
};

var manager = function (cb) {

    async.series(
        [
            function (callback) {

                async.series(
                    [
                        function (cbi) {
                            // get clients.
                        },
                        function (cbi) {
                            cleanupClients();
                        },
                    ],
                    function (err, results) {
                        callback(err, results);
                    }
                );
            }
        ],
    );
};

exports.manager = manager;

var randomInt = function (low, high) {
    return Math.floor(Math.random() * (high - low + 1) + low);
};

var pause = randomInt(0, 60);
setTimeout(
    function () {
        setInterval(manager, 36000 * 1000,
            function (err, results) {
                if (err) {
                    logError(err);
                }
            });
    }, pause * 1000);```










var deleteOrientedClients=new Map();
//删除没有任何父级的空闲客户端。
exports.cleanupClients=函数(客户端,回调){
for(int i=0;i
您试过运行它吗?只要程序继续运行并且
deleteOrientedClients
在作用域内,它就会可用。你能再详细说明一下这个问题是什么吗?谢谢不过,您可能会将
Map
与基本对象混淆。使用
.get
/
.set
而不是方括号。如果node.js进程结束(在两次运行之间听起来像是结束了),那么deleteOrientedClients变量将消失,因为您没有专门将其保存到文件系统(或其他地方)。然后,您还需要在下次运行时从文件系统还原它。