Maison > base de données > tutoriel mysql > Comment gérer efficacement les valeurs de retour MySQL dans Node.js à l'aide de promesses ?

Comment gérer efficacement les valeurs de retour MySQL dans Node.js à l'aide de promesses ?

Barbara Streisand
Libérer: 2024-10-30 03:28:28
original
874 Les gens l'ont consulté

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

Utilisation de promesses pour gérer les valeurs de retour MySQL dans Node.js

Dans ce paradigme de programmation asynchrone, la gestion des valeurs de retour MySQL nécessite une approche différente de celle à des langages comme Python. Cet article se concentre sur la façon de restructurer le code à l'aide de promesses pour traiter efficacement les résultats MySQL.

Considérez l'exemple suivant :

<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>
Copier après la connexion

Ce code rencontre des difficultés en raison de la nature asynchrone de Node.js. Pour résoudre ce problème, nous pouvons adopter une solution basée sur des promesses :

<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>
Copier après la connexion

Maintenant, nous pouvons traiter la valeur de retour à l'aide d'un bloc then/catch :

<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>
Copier après la connexion

En adoptant les promesses , nous pouvons gérer les valeurs de retour MySQL plus efficacement dans Node.js, en profitant de ses capacités asynchrones tout en conservant la lisibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal