MongoError:拓扑被毁了sailsjs

时间:2015-04-30 05:22:54

标签: javascript node.js mongodb sails.js

当我尝试创建此错误时显示:

  

错误(E_UNKNOWN)::遇到意外错误   MongoError:拓扑已被破坏       在Server.insert(/Users/oscargallon/Documents/developer/sails/reyesmagoswebpae/node_modules/sails-mongo/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:797:49)

这是我的模特

module.exports = {

    attributes: {
        name: {
            type: 'string',
            required: true
        },
        email: {
            type: 'String',
            required: true
        },
        description: {
            type: 'string',
            required: true
        },
        phonenumber: {
            type: 'string',
            required: true
        },
        mobile: {
            type: 'string',
            required: true
        }
    }
};

3 个答案:

答案 0 :(得分:6)

我今天也遇到了同样的问题 - 我将sails-mongo版本从“sails-mongo”改为:“^ 0.10.7”改为“sails-mongo”:“^ 0.10.6”in package.json in sails并运行$ sudo npm install然后sails提升它工作正常我觉得npm有一些错误

答案 1 :(得分:2)

Sails-mongo v0.10.7引入了一个重大变化,并不支持mongo< = 2.4。已经恢复了重大更改并发布了v0.10.8,恢复了与mongo< = 2.4的兼容性。同时v0.10.7已被弃用。

同时发布了v0.11,它与mongo> = 2.6兼容。

对于那些使用mongo< = 2.4 更新为0.11.x的人。

更新:部分用户报告了Mongo 3.0的问题,使用v0.10.8似乎解决了这些问题:more details

更新2: v0.10.7和v0.11.0-1的问题已追溯到不适当的连接配置(PR #277)。这可以通过调整连接配置(sails用户的sails/config/connections.js文件)在本地修复:

devMongodbServer: { // connection name
    port: 27017,
    database: 'dev-mongodb-server',
    poolSize: 5,
    socketOptions: {
        noDelay: true,
        connectTimeoutMS: 0,
        socketTimeoutMS: 0
    }
}

v0.11.2将以此连接配置作为默认值发布。

有关https://github.com/balderdashy/sails-mongo/issues/266

的更多详情

答案 2 :(得分:1)

如Anandapriyan所述,它由0.10.7 sail-mongo引起。解决方案对我不起作用但启发了我。 我重新安装了具有较旧构造的sail-mongo。它有效。

sudo npm install sails-mongo@0.10.6 --save

我尝试过0.10.4,但是我又遇到了另一个错误。所以只需用户0.10.6

error: A hook (`orm`) failed to load!