如何仅与MongoClient建立连接?

时间:2019-09-29 01:45:58

标签: node.js mongodb

我正在尝试使用JS中的单例模式为MongoClient获得一个连接,但是不管我有多少实例,当它只应创建一个连接时,它会继续创建许多连接。

我尝试进行!MongoDB.connection,但是我不知道它的实际作用,如果您能解释一下,那将非常棒。

  constructor() {
    this.client = new MongoClient(URI, {
      useNewUrlParser: true,
      useUnifiedTopology: true
    });
    this.database = DB_NAME;
  }

  connect() {
    if (!MongoDB.connection) {
      MongoDB.connection = async () => {
        try {
          await this.client.connect();
          console.log('[db] connected to the server');
        } catch (err) {
          console.log(err);
        }
      };
    }

    return MongoDB.connection();
  }
}

无论我要执行多少实例和connect()方法的调用,它都只需要创建一个连接,并且如果我执行以下操作即可:

const a = new MongoDB();
a.connect();
const b = new MongoDB();
b.connect();

我在控制台中获得两个打开的连接和一些错误:

the options [servers] is not supported
the options [caseTranslate] is not supported
the options [dbName] is not supported
[db] connected to the server
[db] connected to the server

0 个答案:

没有答案