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');