Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann man MySQL-Rückgabewerte in Node.js mithilfe von Versprechen effizient verarbeiten?

Barbara Streisand
Freigeben: 2024-10-30 03:28:28
Original
820 Leute haben es durchsucht

How to Efficiently Handle MySQL Return Values in Node.js Using Promises?

Versprechen zur Verarbeitung von MySQL-Rückgabewerten in Node.js verwenden

In diesem asynchronen Programmierparadigma erfordert die Verarbeitung von MySQL-Rückgabewerten einen anderen Ansatz zu Sprachen wie Python. Dieser Artikel konzentriert sich auf die Umstrukturierung von Code mithilfe von Versprechen, um MySQL-Ergebnisse effektiv zu verarbeiten.

Betrachten Sie das folgende Beispiel:

<code class="javascript">function getLastRecord(name) {
  var connection = getMySQL_connection();

  var query_str =
    "SELECT name, " +
    "FROM records " +
    "WHERE (name = ?) " +
    "LIMIT 1 ";

  var query_var = [name];

  connection.query(query_str, query_var, function (err, rows, fields) {
    //if (err) throw err;
    if (err) {
      //throw err;
      console.log(err);
      logger.info(err);
    } else {
      //console.log(rows);
      return rows;
    }
  }); //var query = connection.query(query_str, function (err, rows, fields) {
}

var rows = getLastRecord('name_record');

console.log(rows);</code>
Nach dem Login kopieren

Dieser Code hat aufgrund der asynchronen Natur von Node.js Probleme. Um dieses Problem anzugehen, können wir eine auf Versprechen basierende Lösung übernehmen:

<code class="javascript">function getLastRecord(name) {
  return new Promise(function (resolve, reject) {
    // The Promise constructor should catch any errors thrown on
    // this tick. Alternately, try/catch and reject(err) on catch.
    var connection = getMySQL_connection();

    var query_str =
      "SELECT name, " +
      "FROM records " +
      "WHERE (name = ?) " +
      "LIMIT 1 ";

    var query_var = [name];

    connection.query(query_str, query_var, function (err, rows, fields) {
      // Call reject on error states,
      // call resolve with results
      if (err) {
        return reject(err);
      }
      resolve(rows);
    });
  });
}</code>
Nach dem Login kopieren

Jetzt können wir den Rückgabewert mithilfe eines then/catch-Blocks verarbeiten:

<code class="javascript">getLastRecord('name_record').then(function (rows) {
  // now you have your rows, you can see if there are <20 of them
}).catch((err) => setImmediate(() => { throw err; })); // Throw async to escape the promise chain</code>
Nach dem Login kopieren

Indem wir Versprechen annehmen können wir MySQL-Rückgabewerte in Node.js effizienter verarbeiten und dabei die asynchronen Funktionen nutzen und gleichzeitig die Lesbarkeit beibehalten.

Das obige ist der detaillierte Inhalt vonWie kann man MySQL-Rückgabewerte in Node.js mithilfe von Versprechen effizient verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage