0

これは私のコードです:

  const queryFirstNames = function (qString) {
    let firstNameMatches;
    client.query('SELECT * FROM famous_people WHERE first_name = $1', [qString], (err, result) => {
      if (err) {
        return console.error('error running query', err);
      }

      firstNameMatches = result.rows;
      return firstNameMatches;
      client.end();
   });
 };

 console.log(queryFirstNames(qString));
});

このコードは未定義を返し、データベースとの接続を終了しません

しかし、返す代わりに関数内で firstNameMatches を console.log に記録し、コンソール ロギングなしで関数を呼び出すと、必要な結果が得られ、データベース接続が適切に閉じられます。

私がしたいのは、このクエリの結果を返し、それを別の関数で使用することです。そのため、結果をコンソール ログに記録したくありませんが、結果を返そうとすると、未定義になり、そうではありません。データベース接続を閉じます。

4

2 に答える 2