2015-06-21 46 views
2

我試着使用mongoose.connect檢查是否存在分貝,如何使用mongoose.connect在mongodb連接期間檢查db是否存在?

mongoose.connect("mongodb://localhost:27017/notexistdb",function(err){ 
    if(err) console.log(err); 
}); 

回調不包含錯誤信息,所以我怎麼能確定數據庫是否存在。

+0

這可能有助於http://stackoverflow.com/questions/11538345/mongoose-detect-database-not-ready –

回答

0

您可以嘗試使用openerror事件來查看是否可以連接到數據庫。如果你可以連接到它,那它就存在。如果你不能,那麼它不會。

var mongoose = require('mongoose'); 

mongoose.connection.on('open', function (ref) { 
    console.log('Connected to Mongo server...'); 
}); 
mongoose.connection.on('error', function (err) { 
    console.log('Could not connect to Mongo server...'); 
    console.log(err); 
}); 

mongoose.connect('"mongodb://localhost:27017/notexistdb',function(err){ 
if(err) console.log(err); 
}); 
+0

它似乎不適合我,不會返回錯誤消息。 mongoose.connect似乎只檢查你的應用程序是否可以連接到服務器,說'localhost:27017',而不是檢查特定數據庫的存在。 –

+0

同樣在這裏,發佈了一個稍微不同的問題[這裏](http://stackoverflow.com/questions/34232183/how-to-check-if-a-database-exists-with-mongoose-createconnection) – Nicky

+0

與我同樣的問題..它不檢查數據庫是否退出。任何解決方案? – Hacker

1

您可以通過獲取數據庫列表輕鬆查找。

var mongoose = require('mongoose') 
    , Admin = mongoose.mongo.Admin; 

/// create a connection to the DB  
var connection = mongoose.createConnection(
    'mongodb://user:[email protected]:port/database'); 
connection.on('open', function() { 
    // connection established 
    new Admin(connection.db).listDatabases(function(err, result) { 
     console.log('listDatabases succeeded'); 
     // database list stored in result.databases 
     var allDatabases = result.databases;  
    }); 
}); 
相關問題