我有一个本地托管的mongodb,我可以使用mongodb.MongoClient连接到它。
工作代码:
var mongoClient = require("mongodb").MongoClient;
...
var startApp = function(db) {
// Get our collections in an easy to use format
var database = {
chats: db.collection('chats'),
messages: db.collection('messages')
};
// Configure our routes
require('./app/routes')(app, database);
// START APP
// Start app on port
app.listen(port);
// Tell user the app is running
console.log("App running on port " + port);
// Expose app
exports = module.exports = app;
}
// DATABASE
var database = null;
mongoClient.connect(config.url, function(err, returnDB) {
if(err) {
console.log(err);
} else {
console.log("DB connected");
startApp(returnDB);
}
});
不再有效的旧版代码:
var mongoose = require('mongoose');
...
// Connect to DB
console.log('Connect to database (' + db.url + ')');
mongoose.connect(db.url);
我已经为这个connect方法添加了一个回调但它永远不会被调用(错误或没有错误,这个连接函数永远不会被我的回调)。
这整个遗留应用程序依赖于使用mongoose与数据库通信的API,因此我不想使用mongodb重做它。我该如何解决这个问题?
* config.url和db.url是从同一个文件加载的,它是一个有效且正在运行的mongodb。
答案 0 :(得分:2)