MongoClient在第一次连接时无法连接到服务器,但稍后连接

时间:2018-05-22 16:27:17

标签: node.js mongodb express

我对如何使用MongoClient.connect感到非常困惑。我有一个使用MongoDB的快速应用程序,我正在使用docker部署它。使用docker-compose up时,应用可能会在mongo准备接受连接之前尝试连接到mongo。发生这种情况时,我收到以下错误:

MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 172.18.0.2:27017]

没关系,但实际上数据库可用后就会连接。这也没关系,但承诺已被拒绝,我也无论如何都没有使用这种联系。我也试过切换到使用回调,但是在失败后再也不会再调用回调。

我总是可以重试,直到我得到一个没有错误的工作连接,但每次重试时,我得到另一个连接到数据库,该数据库不会关闭,直到应用程序重新启动,这通常是新版本已部署。

我需要一种方法来使用最初失败的连接或停止失败的连接重试。有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

3.0版本的Node.js MongoDB驱动程序为您提供了一些额外的灵活性,因为您可以创建自己的MongoClient对象并使用其方法进行连接,检查您是否仍然连接,并根据需要断开连接:

Button