NodeJS如何遍历查询

时间:2019-05-23 03:06:15

标签: javascript node.js discord.js

所以我是Node的新手,我确切地知道如何在PHP中做我想做的事情,尽管我在Node中。所以不知道。

我有以下内容。

switch(args[0]) {
    case 'games':
        var games = con.query("SELECT name FROM games");
        message.channel.send('Available Games:');
}

我的连接已经建立并且可以正常工作。我只是想知道现在如何遍历数据以列出我想要的东西。

例如,由于我查询了游戏的名称,因此我想回显所有游戏名称的消息。

我可以在这里教书吗?完全不确定。

在php中,我只是

foreach($games as $games) {//stuff here}

那是行不通的。

谢谢

凯文

2 个答案:

答案 0 :(得分:1)

所有这些都假设游戏是一个数组,但是您可以做一些事情:

如果您只是想将游戏列表写到输出中:

var games = con.query("SELECT name FROM games");
message.channel.send('Available Games:' + games.join(', '));

这等同于以下PHP代码:

$games = ['halo', 'call of duty', 'destiny 2'];
$message->channel->send('Available Games:' . implode(', ', $games));

如果您想遍历它们:

var games = con.query("SELECT name FROM games");
for (var i = 0; i < games.length; i++) {
    var game = games[i];
}

这等同于以下PHP代码:

$games = ['halo', 'call of duty', 'destiny 2'];
foreach ($games as $game) {
    // $game is in scope here
}

还有其他可以使用的数组方法,例如Array.forEach。但是范围的处理方式有所不同,可能会有一些陷阱。如果您不使用髋关节循环而不是老式的for循环but the performance with them is negligibly worse when dealing with small to medium size datasets and relatively the same on larger datasets,那么很多JavaScript开发人员都会讨厌。

答案 1 :(得分:0)

您在这里有很多选择,但是我会提到最好的选择,

您可以使用地图(如果您想退还东西)

games.map(game=>{/*STUFF*/})

您可以使用forEach(如果您不想返回任何内容)

games.forEach(game=>{/*STUFF*/})

或“ for of”

for (const game of game){/*STUFF */}