2017-10-03 7 views
0

私はDiscordチャットボットが扱っている各ギルドのIDと名前をPGSQLデータベーステーブルに配置しようとしています。私はDiscord.js moduleとそのclient.guildsをJS Mapオブジェクトとして使用しており、forEachメソッドは各サーバー名とIDの各PGSQLクエリを繰り返す方法を使用しています。私は私のGitHubファイル(私のgithubはherokuにリンクされている)に書き込まれているクエリを実行しているプロセスを実行した後、私はPGadminを使ってテーブルをレンダリングしています。PostgreSQLのクエリで値が挿入されない

は、ここに私のコードです:

client.guilds.forEach(function (value, key) { 
    con.query('INSERT INTO Servers (name, id) VALUES (\'' + value.name.toString() + '\', ' + key.valueOf() + ');', (err, res) => { 
    console.log(res); 
    console.log(err); 
    }); 
}); 

私の問題は、私は私のアプリを展開した後、各不和のサーバー名とIDがそれぞれの列に挿入されないことです。

答えて

0

私はこのコードをボットがDiscordにログインした後に挿入することで問題を解決しました。ボットはDiscord APIに接続するまでは情報を取得できないため、クライアントがギルド情報にアクセスできないため、クエリは最初にロードされません。 私はこれを私のclient.readyイベントに配置することにしました。

client.on('ready',() => { 
    console.log(`Logged in as ${client.user.tag}!`); 
    client.guilds.forEach(function (value, key) { 
    con.query('INSERT INTO Servers (name, id) VALUES (\'' + value.toString() + '\', ' + key.valueOf() + ');', (err, res) => { 
     console.log(res); 
     console.log(err); 
    }); 
    }); 
    con.end(); 
}); 
関連する問題