如何使用mongoose.connect在mongodb连接期间检查db是否存在?

我试图使用mongoose.connect来检查数据库是否存在,

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

callback不包含错误消息,所以我怎样才能确定数据库是否存在。

您可以通过获取数据库列表轻松地find。

 var mongoose = require('mongoose') , Admin = mongoose.mongo.Admin; /// create a connection to the DB var connection = mongoose.createConnection( 'mongodb://user:pass@localhost: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; }); }); 

您可以尝试使用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); });