Ошибка Node.js + MongoDB this._handle.write (data) в net.js - PullRequest
2 голосов
/ 16 декабря 2011

Я работаю с 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-адресу БД при создании экземпляра соединения и теперь У меня есть вся эта куча вещей.

Я должен сказать, что данные в моей базе данных довольно большие (например, коллекции 16 МБ), но я не думаю, что это реальная проблема здесь.

Я знаю, что дал очень мало информации, я могу сказать, что теоретически это должно происходить в коде, подобном этому:

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 под капотом).

Кто-нибудь знает, что происходит?

1 Ответ

1 голос
/ 16 декабря 2011

Какую версию mongodb-node-native вы используете?Попробуйте обновить до последней версии.Это была известная ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...