回答編集履歴
2
説明不足
test
CHANGED
@@ -60,6 +60,10 @@
|
|
60
60
|
|
61
61
|
console.log('Database Connect');//Database Connectが出力
|
62
62
|
|
63
|
+
|
64
|
+
|
65
|
+
//この関数をぬけると呼び出していたindex.jsの続きが実行されます。
|
66
|
+
|
63
67
|
},
|
64
68
|
|
65
69
|
};
|
@@ -74,7 +78,7 @@
|
|
74
78
|
|
75
79
|
// index.js
|
76
80
|
|
77
|
-
var mongo = require('./lib/db'); //上記クラスを読み込み(
|
81
|
+
var mongo = require('./lib/db'); //上記クラスを読み込み(lib/db.jsが走ります)
|
78
82
|
|
79
83
|
mongo.connect(); //上に記載したconnect関数のコメントの挙動となります。要するに「繋がったら教えて」と頼んだだけです。
|
80
84
|
|
@@ -82,15 +86,15 @@
|
|
82
86
|
|
83
87
|
//ここでメインプログラム(index.js)終了。
|
84
88
|
|
85
|
-
//ただしMongoClientにコールバックを登録していたので、プロセスは死んでません。
|
86
|
-
|
87
89
|
```
|
88
90
|
|
91
|
+
index.jsは終了しましたが、続きがあります。
|
89
92
|
|
93
|
+
MongoClientにコールバックを登録していたので、プロセスは死んでません。
|
90
94
|
|
91
|
-
MongoClientから接続処理の
|
95
|
+
MongoClientから接続処理の結果としてコールバック関数が、このタイミングで呼び出されます。
|
92
96
|
|
93
|
-
このタイミングで
|
97
|
+
DBの接続は速そうに見えても、プログラム的には色々と手続き処理があり、そこそこ重い処理となるので、今回のコード内容ですと、タイミング的にはindex.jsの同期処理の後となる、このタイミングになるはずです。
|
94
98
|
|
95
99
|
```Javascript
|
96
100
|
|
@@ -102,7 +106,7 @@
|
|
102
106
|
|
103
107
|
console.log(this.connection); // db接続オブジェクト表示
|
104
108
|
|
105
|
-
//コールバック処理が終わったので、プロセスがここで死にます。
|
109
|
+
//コールバック処理が終わったので、プロセスがここでやっと死にます。
|
106
110
|
|
107
111
|
```
|
108
112
|
|
1
説明不備
test
CHANGED
@@ -44,17 +44,17 @@
|
|
44
44
|
|
45
45
|
//ここまで順番どうりです。
|
46
46
|
|
47
|
-
//↓もクラス定義を行って外部公開は完了。
|
48
|
-
|
49
|
-
//connectionの初期化(null代入)とconnect
|
47
|
+
//↓もconnectionの初期化(null代入)とconnect関数を定義し、外部公開が完了。
|
50
48
|
|
51
49
|
module.exports = {
|
52
50
|
|
53
51
|
connection: null,
|
54
52
|
|
53
|
+
//connect関数定義
|
54
|
+
|
55
55
|
connect: function() {
|
56
56
|
|
57
|
-
MongoClient.connect(config.mongodb.url); //繋いでという命令
|
57
|
+
MongoClient.connect(config.mongodb.url); //繋いでという命令実行。繋がったら登録したコールバック関数を後で実行してね、という約束だけはした。
|
58
58
|
|
59
59
|
console.log(this.connection);// まだ繋がってないのでnullで初期化されたnullが表示されます。
|
60
60
|
|