与MONGOOSE的持久联系 - 一个好主意?

时间:2013-06-18 10:13:59

标签: node.js mongodb mongoose

我使用mongoose和其他一些在nodejs环境中有用的东西创建了一个应用程序环境。 我在那里定义了一个构造函数,它为每个组件设置了persistene。 然后我thougt(并且已经写了一些工作的东西)保持连接持久以防止重新连接很多次是一个好主意。 这很好(目前),但有两件事我无法找到... ...

1)我可以处理连接丢失等错误(例如DB服务器关闭)

db.on('error', function(error) {
    console.log('MONGO: ERROR');
    // evt is not fired when DB server goes down
});

db.once('disconnect', function callback() {
console.log('MONGO: DISCONNECTED');
    // evt is also not fired when DB server goes down
});

2)使用在应用程序启动时完成的持久连接是一个好主意    而不是任何用户请求?

我的所有组件都从我的持久层扩展,它建立连接并启动modelName,schemaDefinition等。

Persistence = function(modelName, schemaDefinition, config) {

this.config = config;

if ( typeof (modelName) === 'string' && schemaDefinition instanceof Object) {
    this.mongoose = require('mongoose');

    if (this.mongoose.connection.readyState == this.config.settings.DATABASE.disconnected) {
        var con = this.mongoose.connect('mongodb://' + this.config.settings.DATABASE.host + '/' + this.config.settings.DATABASE.collection);
    }

        this.modelName = modelName;
    this.schemaDefinition = schemaDefinition;

    var db = this.mongoose.connection;

    db.on('error', function(error) {
    console.log('MONGO: FERROR');
    });

    db.once('open', function callback() {
        console.log('MONGO: CONNECTED');
    });

    db.once('disconnect', function callback() {
    console.log('MONGO: CONNECTION lost');
    });
      }
 };

0 个答案:

没有答案