>데이터 베이스 >MySQL 튜토리얼 >Promise를 사용하여 Node.js에서 MySQL 반환 값을 효율적으로 처리하는 방법은 무엇입니까?

Promise를 사용하여 Node.js에서 MySQL 반환 값을 효율적으로 처리하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 03:28:28876검색

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

Promise를 사용하여 Node.js에서 MySQL 반환 값 처리

이 비동기 프로그래밍 패러다임에서 MySQL 반환 값을 처리하려면 다른 접근 방식이 필요합니다. Python과 같은 언어에. 이 기사에서는 MySQL 결과를 효과적으로 처리하기 위해 Promise를 사용하여 코드를 재구성하는 방법에 중점을 둡니다.

다음 예를 고려하세요.

<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>

이 코드는 Node.js의 비동기 특성으로 인해 어려움을 겪습니다. 이 문제를 해결하기 위해 Promise 기반 솔루션을 채택할 수 있습니다.

<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>

이제 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>

Promise를 수용하여 , 가독성을 유지하면서 비동기 기능을 활용하여 Node.js에서 MySQL 반환 값을 보다 효율적으로 처리할 수 있습니다.

위 내용은 Promise를 사용하여 Node.js에서 MySQL 반환 값을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.