回答編集履歴

1

Promise版の使い方を追記

2022/12/28 01:33

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -27,3 +27,33 @@
27
27
  ```
28
28
 
29
29
  一旦これで様子を見てください。
30
+
31
+ ---
32
+
33
+ > `const { promisify } = require("util");`
34
+
35
+ これPromise使おうとしてるんですね。
36
+ mysql2はPromiseにネイティブ対応しているのでそちらを共有します。
37
+
38
+ 参考リンク
39
+ - [Using Promise wrapper | mysql2](https://github.com/sidorares/node-mysql2#using-promise-wrapper)
40
+ - [await.js | mysql2 プロジェクトの公式が用意しているexample](https://github.com/sidorares/node-mysql2/blob/master/examples/promise-co-await/await.js)
41
+
42
+ ```js
43
+ const { promisify } = require("util");
44
+ const path = require("path");
45
+ const { sql } = require("@garafu/mysql-fileloader")({ root: path.join(__dirname, "./sql") });
46
+ const config = require("../../config/mysql.config.js");
47
+
48
+ // Promise対応版はJSファイルレベルで分離されている
49
+ const mysql = require("mysql2/promise");
50
+
51
+ // await構文を使う為にasync関数を定義する
52
+ const main = async () => {
53
+ // connection作る時、Promiseで受け取る仕組みになっているのでasync関数の中でawait構文を使いつつ代入
54
+ const c = await mysql.createConnection(config);
55
+ const [rows] = await c.query('SELECT * FROM users');
56
+ console.log(rows);
57
+ }
58
+ main();
59
+ ```