Node.js 与nodejs的Mongodb连接

Node.js 与nodejs的Mongodb连接,node.js,mongodb,mongoose,database-connection,database,Node.js,Mongodb,Mongoose,Database Connection,Database,我是node js开发新手,最近尝试了一个基本程序来连接node js和mongodb。我使用“mongoose”从节点连接mongodb 在进入数据库连接之前,我有以下问题。启动节点应用程序时出现两种错误情况 案例1-mongodb可能无法启动,在这种情况下,节点服务器本身将无法启动。示例错误消息如下 mongoose/node_modules/mongodb/lib/server.js:242 process.nextTick(function() { throw e

我是node js开发新手,最近尝试了一个基本程序来连接node js和mongodb。我使用“mongoose”从节点连接mongodb

在进入数据库连接之前,我有以下问题。启动节点应用程序时出现两种错误情况

案例1-mongodb可能无法启动,在这种情况下,节点服务器本身将无法启动。示例错误消息如下

mongoose/node_modules/mongodb/lib/server.js:242 process.nextTick(function() { throw err; }) ^ Error: connect ECONNREFUSED at errnoException (net.js:905:11) at Object.afterConnect [as oncomplete] (net.js:896:19) [nodemon] app crashed - waiting for file changes before starting... DisconnectedError: Ran out of retries trying to reconnect to "localhost:27017". Try setting `server.reconnectTries` and `server.reconnectInterval` to something higher. at MongooseError.DisconnectedError 请告诉我如何处理这两个错误案例。(一些示例代码/链接会更有帮助)


PS:我试图冲浪解决这个问题,但无法得到正确的解决方案(或)我可能会被搜索与不正确的关键字

我在nodejs中使用mongoose重新启动mongodb时遇到了这个连接错误。

connection error: { 

    [DisconnectedError: 
        Ran out of retries trying to reconnect to "127.0.0.1:27017". 
        Try setting `server.reconnectTries` and `server.reconnectInterval` 
        to something higher. ]

    message: 'Ran out of retries trying to reconnect to "127.0.0.1:27017". 
              Try setting `server.reconnectTries` and `server.reconnectInterval` 
              to something higher.',

    name: 'DisconnectedError' 

}

发件人:

注意:如果“自动重新连接”处于启用状态,mongoose将在一定次数的故障后放弃尝试重新连接。设置
服务器。重新连接尝试
服务器。重新连接间隔
选项以增加mongoose尝试重新连接的次数


我相信你要找的合适的词不是用例,而是类似于错误用例的东西。用例是对您试图构建的应用程序/系统/事物有益的东西。例如,mongo db用于您的节点应用程序的用例是以指定的格式存储大量数据,这种格式比文件系统更具可扩展性,更易于使用。感谢您更正@Rdesmond yes,我是指错误情况!我也会编辑这篇文章,但我不善于组织文字(请记住:)另外,我不打算回答这些问题,因为这些问题很难回答,而且取决于您的应用程序需求(例如,CAP中的并发性与可用性),而且我没有构建/管理大型系统的丰富经验。也就是说,有几种可能的解决方案是冗余/故障切换系统。情况1,您可以使用负载平衡器,让多个节点服务器运行。案例2,失败的db查询永远不会使web服务器失败。事实上,像Cassandra这样的一些数据库具有容错能力,因此如果单个实例(实例是机器上的“mongodb”进程)发生故障(数据库在多台机器上运行),仍然可以进行查询,因为其他实例的数据存储在故障机器上。我想你误解了我的问题。负载均衡器&多个节点无法解决问题,因为我的问题是启动服务器时数据库本身无法启动。比如说,在某个时候节点服务器和mongo db都被杀死了。在此期间,我们尝试单独启动节点服务器。在这种情况下,节点服务器将无法启动,它将进入循环,直到MongoDB启动。我的问题是,我们如何避免/抓住这个案例,而不是陷入循环!希望我解释清楚!谢谢@Eddy会查的
// Good way to make sure mongoose never stops trying to reconnect

mongoose.connect(uri, { server: { reconnectTries: Number.MAX_VALUE } });