0

我想要做的是在我的本地主机服务器上获取数据库列表,我得到 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();这会关闭我之前的猫鼬连接吗?

4

1 回答 1

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.disconnect() 关闭连接。但是,与其反复连接和断开连接,不如在应用程序启动时连接一次,然后在应用程序关闭时断开连接。

于 2013-09-19T21:51:22.847 回答