teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

mysqlを使って自前のPromiseで処理するとすると...

2020/08/12 22:23

投稿

退会済みユーザー
answer CHANGED
@@ -45,4 +45,39 @@
45
45
  console.log(rows);
46
46
  connection.end();
47
47
  })();
48
+ ```
49
+
50
+ 最後に上のサンプルをmysqlを使って自前のPromiseで処理するとすると...
51
+ ```javascript
52
+ const mysql = require('mysql');
53
+
54
+ async function mysql_createConnection(option) {
55
+ return Promise.resolve(mysql.createConnection(option));
56
+ }
57
+
58
+ async function connection_query(connection, query) {
59
+ return new Promise((resolve, reject) => {
60
+ connection.query(query, (error, results, fields) => {
61
+ if (error) {
62
+ reject(error);
63
+ } else {
64
+ resolve(results);
65
+ }
66
+ });
67
+ })
68
+ }
69
+
70
+ (async () => {
71
+ const connection = await mysql_createConnection({
72
+ host: 'localhost',
73
+ user: 'homestead',
74
+ database: 'homestead',
75
+ password: 'secret',
76
+ port: '13306'
77
+ });
78
+
79
+ const rows = await connection_query(connection, `SELECT * FROM item;`);
80
+ console.log(rows);
81
+ connection.end();
82
+ })();
48
83
  ```

1

一応promise-mysqlのサンプルも書いときました。

2020/08/12 22:23

投稿

退会済みユーザー
answer CHANGED
@@ -26,4 +26,23 @@
26
26
  isRegistered('hogehoge', (result)=>{
27
27
  console.log(result);
28
28
  });
29
+ ```
30
+
31
+ 一応promise-mysqlのサンプルも書いときました。
32
+ ```javascript
33
+ const mysql = require('promise-mysql');
34
+
35
+ (async () => {
36
+ const connection = await mysql.createConnection({
37
+ host: 'localhost',
38
+ user: 'homestead',
39
+ database: 'homestead',
40
+ password: 'secret',
41
+ port: '13306'
42
+ });
43
+
44
+ const rows = await connection.query(`SELECT * FROM item;`);
45
+ console.log(rows);
46
+ connection.end();
47
+ })();
29
48
  ```