回答編集履歴

1

追記

2018/06/12 07:17

投稿

mosapride
mosapride

スコア1480

test CHANGED
@@ -3,3 +3,65 @@
3
3
 
4
4
 
5
5
  close処理を入れるか、connectしたobjectを使い回す(singleton)ようにすればエラーを回避することができると思いますよ。
6
+
7
+
8
+
9
+
10
+
11
+ ## 追記
12
+
13
+
14
+
15
+ 基本的な使い方まマニュアルに載ってますね。
16
+
17
+
18
+
19
+ [https://docs.mongodb.com/manual/tutorial/atlas-free-tier-setup/](https://docs.mongodb.com/manual/tutorial/atlas-free-tier-setup/)
20
+
21
+
22
+
23
+ ```ts
24
+
25
+ var MongoClient = require('mongodb').MongoClient;
26
+
27
+
28
+
29
+ var uri = "mongodb://user123:p455w0rd@gettingstarted-shard-00-00-hyjsm.mongodb.net:27017,gettingstarted-shard-00-01-hyjsm.mongodb.net:27017,gettingstarted-shard-00-02-hyjsm.mongodb.net:27017/test?ssl=true&replicaSet=GettingStarted-shard-0&authSource=admin";
30
+
31
+ MongoClient.connect(uri, function(err, db) {
32
+
33
+ // Paste the following examples here
34
+
35
+
36
+
37
+ db.close();
38
+
39
+ });
40
+
41
+ ```
42
+
43
+
44
+
45
+ > この場合最後のコールバック関数時(res.render)に、myDB.close()とすれば一括で閉じることはできるのでしょうか?
46
+
47
+
48
+
49
+ catchでエラーページに飛ぶときのみcloseしても正常時にはcloseしないことになるのでfinallyが妥当です。
50
+
51
+
52
+
53
+ ```ts
54
+
55
+ }catch(e){
56
+
57
+  console.log(e);
58
+
59
+ res.render('../views/Erro.ejs');
60
+
61
+ } finally {
62
+
63
+ database.close(); // ←こっち
64
+
65
+ };
66
+
67
+ ```