我要做的是获取我的localhost服务器上的数据库列表我得到了ip地址,在这种情况下是本地主机和数据库服务器端口,并调用下面的服务。
我在控制台中获得的错误是缺少数据库名称,因为我必须只连接数据库服务器,我在哪里错过了一些东西?
app.post('/loadDataBase', function(req,res){
app.set('mongoose').connection.close();
var mongoose = require('mongoose')
, Admin = mongoose.mongo.Admin;
// create a connection to the DB
var connectionStr="mongodb://"+req.body.host+":"+req.body.port;
/* var connection = mongoose.createConnection(
'mongodb://127.0.0.1');*/
var connection = mongoose.createConnection(connectionStr) ;
connection.on('open', function() {
// connection established
new Admin(connection.db).listDatabases(function(err, result) {
// database list stored in result.databases
var allDatabases = result.databases;
res.send(allDatabases);
});
});
});'
app.set('mongoose').connection.close();
这会关闭我以前的猫鼬连接吗?
答案 0 :(得分:0)
这适用于我在端口27017上本地运行的mongod。它成功打印出一个数据库列表及其sizeOnDisk。
var mongoose = require('mongoose')
, Admin = mongoose.mongo.Admin;
var connection = mongoose.createConnection('mongodb://localhost:27017') ;
connection.on('open', function() {
// connection established
new Admin(connection.db).listDatabases(function(err, result) {
// database list stored in result.databases
var allDatabases = result.databases;
console.log(allDatabases);
});
});
你能告诉我你的确切错误输出吗?这可能有助于我诊断出问题所在。
关于关闭以前的mongoose连接的问题:您可以使用mongoose.disconnect()关闭连接。但是,不是重复连接和断开连接,最好在应用程序启动时连接一次,然后在应用程序关闭时断开连接。