Node.js db.open和db.connect之间有什么区别?

Node.js db.open和db.connect之间有什么区别?,node.js,mongodb,Node.js,Mongodb,在制作NodeJS HTTP服务器的过程中,我从下面的代码开始。该服务器应该能够处理大约10000个请求,所有请求都发生在同一秒或两秒之内 我想知道db.open和db.connect之间到底有什么区别。上面分别写着“初始化数据库连接”和“连接到数据库”,但这对我来说似乎是一样的。此外,它们都使用db.close()来关闭连接。有我应该用的吗 var server = http.createServer(function (req, res) { req.on('data', fun

在制作NodeJS HTTP服务器的过程中,我从下面的代码开始。该服务器应该能够处理大约10000个请求,所有请求都发生在同一秒或两秒之内

我想知道
db.open
db.connect
之间到底有什么区别。上面分别写着“初始化数据库连接”和“连接到数据库”,但这对我来说似乎是一样的。此外,它们都使用
db.close()
来关闭连接。有我应该用的吗

var server = http.createServer(function (req, res) {

     req.on('data', function(chunk) {
          //Do some stuff here
     });

     req.on('end', function() {
          //Do some stuff here
          var db = new Db('test', new Server("111.111.11.111", 27017,{auto_reconnect: false}), {safe: true});  

          db.open(function(err, db) {
               //Insert data into DB
               db.close();
          });
     });
}); //End Http server

首先,尝试从请求中删除数据库连接,并保持每个应用1个。当所有客户端都希望结束其请求时,将数据库与10k连接混搭不是一个好主意。据我所知,数据库的连接池有限,所以这就是造成瓶颈和错误的原因。不幸的是,我现在不能给这一个很好的例子

至于“
db.connect
”和“
db.open
”的区别主要在于代码的使用。更准确地说,这里是,正如您所看到的,connect使用的是连接字符串,而open使用的是
newdb
,需要
newserver
声明才能工作


哦,还有一件事,试着为mongoDB连接使用更高级别的库,比如mongoose(我不能用“好方法”粘贴链接,所以这里是:mongoosejs.com)

我想说几句话。我没有任何错误,我的服务器工作正常。我只是想知道一般意义上的开放和连接之间的区别。在我的具体案例中,我链接了上面的文档,而您将我链接到了我没有使用的MongoClient。你的想法会转移到我的处境吗?最后,我需要我的应用程序处理一次以上的请求。正如我已经说过的,这个服务器工作得很好,我真正想要的是一个更高效的服务器,如果可能的话,它可以处理DB open/close/connect。@krikara@necromos在这里说的话对于一个可伸缩的服务器来说是至关重要的。您正在打开的连接实际上是一个连接池,在应用程序生命周期内保持打开状态,并由所有请求共享。您可以根据所需的并发性来调整它的大小。因此,在应用程序启动时使用
MongoClient.connect
,因为旧样式的
db.open
/
db.connect
有些混乱,正如您所发现的那样。@johnyhk在我的另一篇文章中,我发现MongoClient.connect速度较慢。理想情况下,我会尽量提高效率,寻找最快的方法@krikara我看到了,但这并不重要,因为在启动过程中,您应该只调用一次。@johnyhk每次我调用它一次,它要么速度慢了很多,有时会导致连接错误(取决于db/MongoClient方法)。如何扩大连接池或创建多个连接池并有效地使用它们?