我在我的Node.js应用程序中使用MongoSkin,经过一段时间的不活动后,它失去了与数据库的连接

时间:2013-03-01 23:30:55

标签: javascript node.js mongodb mlab mongoskin

我正在构建my first Node.js application,我遇到了MongoDB的问题。我正在使用MongoSkin驱动程序。

一旦我开始申请,一切都很好。我可以坐下来玩玩具一小时,它会继续工作。但是,如果我让它静置几分钟没有任何活动,那么下一个请求将导致错误:

  

错误:连接已关闭       在Server.connect.connectionPool.on.server._serverState(X:\ Code \ CodeTunnel \ node_modules \ mongoskin \ node_modules \ mongodb \ lib \ mongodb \ connection \ server.js:520:35)       在EventEmitter.emit(events.js:126:20)       at connection.on._self._poolState(X:\ Code \ CodeTunnel \ node_modules \ mongoskin \ node_modules \ mongodb \ lib \ mongodb \ connection \ connection_pool.js:109:15)       在EventEmitter.emit(events.js:99:17)       在Socket.closeHandler(X:\ Code \ CodeTunnel \ node_modules \ mongoskin \ node_modules \ mongodb \ lib \ mongodb \ connection \ connection.js:427:12)       在Socket.EventEmitter.emit(events.js:96:17)       在Socket._destroy.destroyed(net.js:358:10)       at process.startup.processNextTick.process._tickCallback(node.js:244:9)

我已尝试将auto_reconnect=true添加到mongoskin documentation建议的连接字符串中,但这没有帮助。

1 个答案:

答案 0 :(得分:1)

我最终想出了这个。解决方案相当简单。

USE MONGOOSE

......或其他

我只有MongoSkin的问题,在最后花时间学习Mongoose之后我还是喜欢它。模型范例很棒,特别是因为每个模型都有自己的持久化方法来保存对文档的更改。使用promises创建流畅的查询API是非常强大的,并且比本机MongoDB驱动程序提供的标准回调地狱更容易阅读。 MongoSkin只是略微减轻了回调地狱,而且阅读更复杂的查询仍然非常困难。

编辑:Downvote .....真的吗?什么想法通过你的头先生downvote? “猫鼬不是我喜欢的ORM所以这是一个downvote。”