Bei der Arbeit mit Node-webkit und MySQL kann das Extrahieren von Daten aus Datenbankabfragen wie ein Rätsel erscheinen. Eines der Rätsel, auf die Sie möglicherweise stoßen, ist der Zugriff auf die Ergebnisse Ihrer Abfrage, die oft in einem RowDataPacket-Objekt gespeichert werden.
In Ihrem Code haben Sie die Ergebnisse nach Verwendung von query() in einem ret-Array gespeichert. Methode:
var ret = []; conn.query(SQLquery, function(err, rows, fields) { if (err) alert("..."); else { for (var i of rows) ret.push(i); } doStuffwithTheResult(ret); });
Wenn Sie versuchen, mit den Ergebnissen in der Funktion doStuffwithTheResult zu arbeiten, fragen Sie sich zu Ihrer Überraschung, wie Sie die Ergebnisse extrahieren können Daten.
Um dieses Rätsel zu lösen, muss man die Natur von RowDataPacket-Objekten verstehen. Im Gegensatz zu seinem Namen ist RowDataPacket kein Paket, sondern eine Konstruktorfunktion, die Objekte erstellt. Jedes Objekt enthält Schlüssel-Wert-Paare, die eine Zeile in Ihrer Datenbanktabelle darstellen. Sie können auf diese Werte mithilfe der Punktnotation zugreifen.
Wenn Sie beispielsweise die Benutzer-ID aus dem ersten Ergebnis abrufen möchten, würden Sie ret[0].user_id verwenden. Um sowohl den Schlüssel als auch den Wert zu erhalten, können Sie ret[0].user_id oder ret[0]['user_id'] ausführen.
Denken Sie daran, dass RowDataPacket-Objekte normale Objekte sind. Sie können dies überprüfen, indem Sie den Konstruktornamen überprüfen: [0].constructor.name. Dadurch wird ersichtlich, dass das Objekt eine Instanz von RowDataPacket ist.
Das obige ist der detaillierte Inhalt vonWie greife ich auf Daten von RowDataPacket-Objekten in Node-webkit und MySQL zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!