Node.js + MongoDB中的this._handle.write(数据)在net.js

我正在与Node.js + MongoDB的应用程序。 不时,在服务器的一些AJAX请求之前,我得到这个错误:

net.js:434 var writeReq = this._handle.write(data); ^ TypeError: Cannot call method 'write' of null at Socket._write (net.js:434:31) at Socket.write (net.js:426:15) at [object Object].<anonymous> (/path/to/node_modules/mongodb/lib/mongodb/connection.js:426:26) at [object Object].emit (events.js:64:17) at [object Object].<anonymous> (/path/to/node_modules/mongodb/lib/mongodb/connections/server.js:31:21) at [object Object].emit (events.js:64:17) at [object Object].<anonymous> (/path/to/node_modules/mongodb/lib/mongodb/db.js:78:25) at [object Object].emit (events.js:64:17) at [object Object].<anonymous> (/path/to/node_modules/mongodb/lib/mongodb/connections/server.js:110:12) at [object Object].emit (events.js:64:17) 

我使用mongoskin从节点到MongoDB的连接。 我的节点版本是0.6.5。 在此之前,我以前只接收connection.js (它只是抛出错误,并停止)的错误,但我设法避免通过添加后缀?auto_reconnect到数据库的URL当我实例化连接,现在我有这一大堆的东西。

我不得不说,我的数据库中的数据是相当大的(如16MB集合),但我不认为这是真正的问题在这里。

我知道我给了很less的信息,我可以说理论上应该是这样的代码:

 var nmn_connect = require('mongoose/node_modules/mongodb').connect; nmn_connect('mongo://localhost:8888/my_db?auto_reconnect', function(err, db) { ... }); 

是的,我在这里使用了node-mongo-native,这是因为在mongoskin中,我无法真正访问集合列表,我需要在客户端执行特定的操作。 因此我认为这个错误是由于这个(我记得它应该使用net.js )。

有谁知道发生了什么事?

您使用哪个版本的mongodb-node-native? 尝试升级到最新的一个。 这是一个已知的错误。