我試着使用mongoose.connect檢查是否存在分貝,如何使用mongoose.connect在mongodb連接期間檢查db是否存在?
mongoose.connect("mongodb://localhost:27017/notexistdb",function(err){
if(err) console.log(err);
});
回調不包含錯誤信息,所以我怎麼能確定數據庫是否存在。
我試着使用mongoose.connect檢查是否存在分貝,如何使用mongoose.connect在mongodb連接期間檢查db是否存在?
mongoose.connect("mongodb://localhost:27017/notexistdb",function(err){
if(err) console.log(err);
});
回調不包含錯誤信息,所以我怎麼能確定數據庫是否存在。
您可以嘗試使用open
和error
事件來查看是否可以連接到數據庫。如果你可以連接到它,那它就存在。如果你不能,那麼它不會。
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);
});
您可以通過獲取數據庫列表輕鬆查找。
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;
});
});
這可能有助於http://stackoverflow.com/questions/11538345/mongoose-detect-database-not-ready –