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

質問編集履歴

7

コード修正

2020/08/12 07:21

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,6 @@
10
10
 
11
11
  ### 該当のソースコード
12
12
  修正1
13
- result.resolveにはundefined
14
13
  ```javascript
15
14
  var http = require('http');
16
15
  const mysql = require('mysql');
@@ -26,55 +25,21 @@
26
25
 
27
26
  var query = `SELECT EXISTS (SELECT * FROM hoges WHERE id = '${id}') as result;`;
28
27
  await connection.query(query, (err, rows, fields) => {
29
- result = Boolean(rows[0].result);
28
+ result = Boolean(rows[0].result); // ★3番目に呼ばれる
30
29
  });
31
30
 
32
- return result;
31
+ return result; // ★1番目に呼ばれる
33
32
  }
34
33
 
35
34
  // 呼び出し元
36
- http.createServer(function (req, res) {
35
+ http.createServer(async function (req, res) {
37
36
  if (req.method == 'POST') {
38
- var result = isRegistered('hogehoge');
37
+ var result = awit isRegistered('hogehoge');
39
- console.log(result.resolve);
38
+ console.log(result.resolve);// ★2番目に呼ばれる
40
39
  }
41
40
  }).listen(8080);
42
41
  ```
43
42
 
44
- 修正2
45
- resultはundefined
46
- ```javascript
47
- var http = require('http');
48
- const mysql = require('mysql');
49
- var result;
50
-
51
- const connection = mysql.createConnection({
52
- host: '',
53
- user: 'aaa',
54
- password: 'bbb',
55
- port: '3306'
56
- });
57
-
58
- function isRegistered(id) {
59
- var result = false;
60
-
61
- var query = `SELECT EXISTS (SELECT * FROM hoges WHERE id = '${id}') as result;`;
62
- connection.query(query, (err, rows, fields) => {
63
- result = Boolean(rows[0].result);
64
- });
65
-
66
- return result;
67
- }
68
-
69
- // 呼び出し元
70
- http.createServer(function (req, res) {
71
- if (req.method == 'POST') {
72
- isRegistered('hogehoge');
73
- console.log(result);
74
- }
75
- }).listen(8080);
76
- ```
77
-
78
43
  ### 試したこと
79
44
 
80
45
  Node.jsの経験が浅いので断定できませんが、

6

修正

2020/08/12 07:21

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ### 該当のソースコード
12
12
  修正1
13
- resultにはtrueのみ
13
+ result.resolveにはundefined
14
14
  ```javascript
15
15
  var http = require('http');
16
16
  const mysql = require('mysql');
@@ -36,7 +36,7 @@
36
36
  http.createServer(function (req, res) {
37
37
  if (req.method == 'POST') {
38
38
  var result = isRegistered('hogehoge');
39
- console.log(result);
39
+ console.log(result.resolve);
40
40
  }
41
41
  }).listen(8080);
42
42
  ```

5

コード修正

2020/08/12 06:49

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -35,7 +35,8 @@
35
35
  // 呼び出し元
36
36
  http.createServer(function (req, res) {
37
37
  if (req.method == 'POST') {
38
- var result = db.isRegistered('hogehoge');
38
+ var result = isRegistered('hogehoge');
39
+ console.log(result);
39
40
  }
40
41
  }).listen(8080);
41
42
  ```
@@ -68,7 +69,8 @@
68
69
  // 呼び出し元
69
70
  http.createServer(function (req, res) {
70
71
  if (req.method == 'POST') {
71
- var result = db.isRegistered('hogehoge');
72
+ isRegistered('hogehoge');
73
+ console.log(result);
72
74
  }
73
75
  }).listen(8080);
74
76
  ```

4

回答を受けてコード修正

2020/08/12 06:27

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -9,7 +9,8 @@
9
9
  下記のコードでtrueになるような引数を与えてもfalseしか返ってきません。
10
10
 
11
11
  ### 該当のソースコード
12
-
12
+ 修正1
13
+ resultにはtrueのみ
13
14
  ```javascript
14
15
  var http = require('http');
15
16
  const mysql = require('mysql');
@@ -39,6 +40,39 @@
39
40
  }).listen(8080);
40
41
  ```
41
42
 
43
+ 修正2
44
+ resultはundefined
45
+ ```javascript
46
+ var http = require('http');
47
+ const mysql = require('mysql');
48
+ var result;
49
+
50
+ const connection = mysql.createConnection({
51
+ host: '',
52
+ user: 'aaa',
53
+ password: 'bbb',
54
+ port: '3306'
55
+ });
56
+
57
+ function isRegistered(id) {
58
+ var result = false;
59
+
60
+ var query = `SELECT EXISTS (SELECT * FROM hoges WHERE id = '${id}') as result;`;
61
+ connection.query(query, (err, rows, fields) => {
62
+ result = Boolean(rows[0].result);
63
+ });
64
+
65
+ return result;
66
+ }
67
+
68
+ // 呼び出し元
69
+ http.createServer(function (req, res) {
70
+ if (req.method == 'POST') {
71
+ var result = db.isRegistered('hogehoge');
72
+ }
73
+ }).listen(8080);
74
+ ```
75
+
42
76
  ### 試したこと
43
77
 
44
78
  Node.jsの経験が浅いので断定できませんが、

3

コード修正

2020/08/12 06:25

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -11,6 +11,7 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```javascript
14
+ var http = require('http');
14
15
  const mysql = require('mysql');
15
16
  const connection = mysql.createConnection({
16
17
  host: '',
@@ -19,16 +20,23 @@
19
20
  port: '3306'
20
21
  });
21
22
 
22
- function isRegistered(id) {
23
+ async function isRegistered(id) {
23
24
  var result = false;
24
25
 
25
26
  var query = `SELECT EXISTS (SELECT * FROM hoges WHERE id = '${id}') as result;`;
26
- connection.query(query, (err, rows, fields) => {
27
+ await connection.query(query, (err, rows, fields) => {
27
28
  result = Boolean(rows[0].result);
28
29
  });
29
30
 
30
31
  return result;
31
32
  }
33
+
34
+ // 呼び出し元
35
+ http.createServer(function (req, res) {
36
+ if (req.method == 'POST') {
37
+ var result = db.isRegistered('hogehoge');
38
+ }
39
+ }).listen(8080);
32
40
  ```
33
41
 
34
42
  ### 試したこと

2

コード修正

2020/08/12 06:17

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -11,6 +11,7 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```javascript
14
+ const mysql = require('mysql');
14
15
  const connection = mysql.createConnection({
15
16
  host: '',
16
17
  user: 'aaa',

1

コード追記

2020/08/12 05:57

投稿

kawauso
kawauso

スコア56

title CHANGED
File without changes
body CHANGED
@@ -11,6 +11,13 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```javascript
14
+ const connection = mysql.createConnection({
15
+ host: '',
16
+ user: 'aaa',
17
+ password: 'bbb',
18
+ port: '3306'
19
+ });
20
+
14
21
  function isRegistered(id) {
15
22
  var result = false;
16
23