Node.js + MongoDB this._handle.write(data) bugging in 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)

我使用蒙皮连接从节点到MongoDB。我的node版本是0.6.5。在此之前,我曾经只在connection.js中收到一个错误(它只是抛出错误并停止),但是当我实例化连接时,我设法通过在DB的URL中添加后缀?auto_reconnect来避免它,现在我有了这一大堆东西。

我不得不说我的数据库中的数据非常大(像16MB的集合),但我不认为这是真正的问题。

我知道我给出的信息很少,我可以说理论上应该在这样的代码中发生:

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

是的,我在这里使用node-mongo-native,这是因为使用mongo- skin我不能真正访问集合列表,我需要在我的客户端进行特定操作。因此,我认为错误是由(我记得它应该在引擎盖下使用net.js)引起的。

有人知道发生了什么事吗?

您使用的是哪个版本的mongodb-node-native ?尝试升级到最新版本。

最新更新