回答編集履歴
1
追記
    
        answer	
    CHANGED
    
    | @@ -1,3 +1,34 @@ | |
| 1 1 | 
             
            connectのみをしclose処理をしていないためmongodbの最大同時接続数に到達し、それ以上は接続できないためエラーが発生しているのではないでしょうか?
         | 
| 2 2 |  | 
| 3 | 
            -
            close処理を入れるか、connectしたobjectを使い回す(singleton)ようにすればエラーを回避することができると思いますよ。
         | 
| 3 | 
            +
            close処理を入れるか、connectしたobjectを使い回す(singleton)ようにすればエラーを回避することができると思いますよ。
         | 
| 4 | 
            +
             | 
| 5 | 
            +
             | 
| 6 | 
            +
            ## 追記
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            基本的な使い方まマニュアルに載ってますね。
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            [https://docs.mongodb.com/manual/tutorial/atlas-free-tier-setup/](https://docs.mongodb.com/manual/tutorial/atlas-free-tier-setup/)
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ```ts
         | 
| 13 | 
            +
            var MongoClient = require('mongodb').MongoClient;
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            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";
         | 
| 16 | 
            +
            MongoClient.connect(uri, function(err, db) {
         | 
| 17 | 
            +
              // Paste the following examples here
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              db.close();
         | 
| 20 | 
            +
            });
         | 
| 21 | 
            +
            ```
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            > この場合最後のコールバック関数時(res.render)に、myDB.close()とすれば一括で閉じることはできるのでしょうか?
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            catchでエラーページに飛ぶときのみcloseしても正常時にはcloseしないことになるのでfinallyが妥当です。
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            ```ts
         | 
| 28 | 
            +
              }catch(e){
         | 
| 29 | 
            +
               console.log(e);
         | 
| 30 | 
            +
                res.render('../views/Erro.ejs');
         | 
| 31 | 
            +
              } finally {
         | 
| 32 | 
            +
                database.close();  // ←こっち
         | 
| 33 | 
            +
              };
         | 
| 34 | 
            +
            ```
         | 
