mongoose和模型连接

我试图让我的头如何mongoose使用它的连接。 目前我有:

// Datastore.js var mongoose = require('mongoose'), conn = mongoose.createConnection(); ... conn.open(host, database, port, options, callback); // Opens connection // Model.js var mongoose = require('mongoose'); var Schema = new mongoose.Schema({...}) module.exports = exports = mongoose.model('MyModel', Schema); // Controller.js var mongoose = require('mongoose'); var MyModel = mongoose.model('MyModel'); // Retrieves the model ok MyModel.find({}, function(err, docs){ if(err){} // console.log(docs); // Does not work }); 

然而,这是行不通的…它只有在我以这种方式传递连接时才起作用:

 // Datastore.js var mongoose = require('mongoose'), conn = mongoose.createConnection(); ... conn.open(host, database, port, options, callback); // mongoose.set('db', conn); // Controller.js var mongoose = require('mongoose'), db = mongoose.get('db'); var MyModel = db.model('MyModel'); // Retrieve the model using the connection instance MyModel.find({}, function(err, docs){ if(err){} // console.log(docs); // Works }); 

我想我正在用错误的方式处理这个问题……第一种方法是否应该起作用,而我做错了什么?

打开所有mongoose呼叫共享的默认连接池是最简单的:

 // Datastore.js var mongoose = require('mongoose'), db = mongoose.connect('localhost', 'dbname'); 

然后在所有其他文件中使用mongoose.model(...)访问池。

看看它说的文档 :

 var mongoose = require('mongoose'); var db = mongoose.createConnection('localhost', 'test'); 

也许你需要把你的连接细节,以创build连接

 var mongoose = require('mongoose'), conn = mongoose.createConnection('localhost', 'test');