1. ホーム
  2. mysql

[解決済み] RowDataPacketオブジェクトにアクセスする方法

2023-05-05 15:50:18

質問

私は現在、Node-webkitを使用してデスクトップアプリケーションを開発しています。その過程で、私はローカルのMySQL-データベースからいくつかのデータを取得する必要があります。

クエリは問題なく動作しますが、結果にアクセスする方法がわかりません。私は、関数に渡される配列にそれらすべてを格納します。コンソールでは、それらは次のように見えます。

RowDataPacket {user_id: 101, ActionsPerformed: 20}
RowDataPacket {user_id: 102, ActionsPerformed: 110}
RowDataPacket {user_id: 104, ActionsPerformed: 3}

そして、これがクエリの構造です。

var ret = [];
conn.query(SQLquery, function(err, rows, fields) {
    if (err)
        alert("...");
    else {
        for (var i of rows) 
            ret.push(i);
    }
    doStuffwithTheResult(ret);
}

でどのように取得すればよいのでしょうか? doStuffwithTheResult 関数で取得できますか?値の方が重要ですが、キーも取得できれば最高です。

どのように解決するのですか?

これらのオブジェクトは通常のオブジェクトであり、以下のような方法でアクセスすることができます。 user_id .

RowDataPacket は実際にはオブジェクトを作成するコンストラクタ関数の名前であり、次のように表示されます。 new RowDataPacket(user_id, ...) . その名前にアクセスすることで確認できます。 [0].constructor.name

結果が配列の場合は [0].user_id .