Node.js中的多用途变量

Node.js中的多用途变量,node.js,Node.js,我运行游戏服务器并编写了一个Node.js bot来发送/接收来自/到Discord的聊天信息,以实现它们之间的通信。 现在我想集成它的功能,以接收从游戏到Discord的最新日志。 我已经设法让它为一个球员工作,但现在我想让它为几个球员工作。 我有三个变量:channelID、server、playerID 所以,我的问题是,拥有多个ChannelID数组的最佳方法是什么,这些数组将包含多个服务器值和playerID值,由单个函数处理 我当前的工作代码: var channelID = &qu

我运行游戏服务器并编写了一个Node.js bot来发送/接收来自/到Discord的聊天信息,以实现它们之间的通信。 现在我想集成它的功能,以接收从游戏到Discord的最新日志。 我已经设法让它为一个球员工作,但现在我想让它为几个球员工作。 我有三个变量:channelID、server、playerID

所以,我的问题是,拥有多个ChannelID数组的最佳方法是什么,这些数组将包含多个服务器值和playerID值,由单个函数处理

我当前的工作代码:

var channelID = "channel1";
var server = "server1";
var playerID = "player1";
//Last log message is stored in Webdis
var webdisURL = "http://127.0.0.1:7379/GET/" + server + playerID;

setInterval(() => lastLog(webdisURL, function(body) {
    Object.keys(body).forEach(e => result = `${body[e]}`);
    client.channels.cache.get(channelID).send(result);
}), 3000);

function lastLog(webdisURL, callback) {
    request({
        url: webdisURL,
        json: true
    }, function(error, response, body) {
        if (!error && response.statusCode === 200) {
            callback(body);
        }
    });
}

所以我就这样做了:

var webdisURL = "http://127.0.0.1:7379/GET/";

class Players {
    constructor(players, channelID) {
        players = players.split(',');
        players.forEach(getPlayers);

        function getPlayers(value) {
            var playerName = value.split(":")[0];
            var playerSRV = value.split(":")[1];
            var playerID = value.split(":")[2];
            var getLogURL = webdisURL + playerSRV + playerID;
            var result;
            var previousResult;
            setInterval(() => lastLog(getLogURL, function (body) {
                Object.keys(body).forEach(e => result = `${body[e]}`);
                if (result !== previousResult) {
                    client.channels.cache.get(channelID).send("[" + playerName + "] - [" + playerSRV + "]: " + result);
                    previousResult = result;
                }
            }), 3000);

            function lastLog(getLogURL, callback) {
                request({
                    url: getLogURL,
                    json: true
                }, function (error, response, body) {
                    if (!error && response.statusCode === 200) {
                        callback(body);
                    }
                });
            }
        }
    }
}

// "playerName1:playerSRV1:playerID1,playerName2:playerSRV2:playerID2", "channelID"
let playerTeam1 = new Players("Perseus:myServer1:ID1", "channel1");
let playerTeam2 = new Players("Another Player:myServer2:ID1,Another Player2:myServer3:ID1", "channel2");
示例输出:

[Perseus] - [myServer1]: Day 153, 11:59:43: Your 'Campfire' was auto-decay destroyed!
[Another Player] - [myServer2]: Day 153, 11:59:43: Your 'Campfire' was auto-decay destroyed!
[Another Player2] - [myServer3]: Day 153, 11:59:43: Your 'Campfire' was auto-decay destroyed!

看起来还好吗?如果有任何改进建议,我将不胜感激。

与什么相比,最好的方法是什么?分享你的代码不是一个坏主意谢谢你的建议