我正在使用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 ?尝试升级到最新版本。