Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoHQ Node.js连接URL连接失败_Javascript_Node.js_Mongodb_Mongohq - Fatal编程技术网

Javascript MongoHQ Node.js连接URL连接失败

Javascript MongoHQ Node.js连接URL连接失败,javascript,node.js,mongodb,mongohq,Javascript,Node.js,Mongodb,Mongohq,我有一个正常工作的Node.js应用程序设置,在使用本地开发MongoDB时运行良好,并带有以下设置和代码: var MongoDB = require('mongodb').Db; var Server = require('mongodb').Server; var dbPort = 27017; var dbHost = 'localhost'; var dbName = 'my-db'; var db = new MongoDB(dbN

我有一个正常工作的Node.js应用程序设置,在使用本地开发MongoDB时运行良好,并带有以下设置和代码:

var MongoDB     = require('mongodb').Db;
var Server      = require('mongodb').Server;

var dbPort      = 27017;
var dbHost      = 'localhost';
var dbName      = 'my-db';

var db = new MongoDB(dbName, new Server(dbHost, dbPort, {auto_reconnect: true}), {w: 1});
db.open(function(e, d){
if (e) {
    console.log(e);
}   else{
    console.log('connected to database :: ' + dbName);
}
});
但是当我尝试连接我的MongoHQURI时,我得到了一个连接失败的错误

我不确定如何使用URI:mongodb://username:password@linus.mongohq.com:10022/my db 使用上述代码

编辑: 下面是我的代码的下一部分,以说明如果db变量有助于解决问题,我将如何使用它:

var accounts = db.collection('accounts');

/* login validation methods */

exports.autoLogin = function(user, pass, callback)
{
accounts.findOne({user:user}, function(e, o) {
    if (o){
        o.pass == pass ? callback(o) : callback(null);
    }   else{
        callback(null);
    }
});
}

exports.manualLogin = function(user, pass, callback)
{
accounts.findOne({user:user}, function(e, o) {
    if (o == null){
        callback('user-not-found');
    }   else{
        validatePassword(pass, o.pass, function(err, res) {
            if (res){
                callback(null, o);
            }   else{
                callback('invalid-password');
            }
        });
    }
});
}
试试这个:

var mongodb = require('mongodb');
var url = require('url');

var MONGOHQ_URL = "mongodb://username:password@linus.mongohq.com:10022/my-db";

var connectionUri = url.parse(MONGOHQ_URL);
var dbName = connectionUri.pathname.replace(/^\//, '');

mongodb.Db.connect(MONGOHQ_URL, function(error, client) {
    if (error) throw error;

    console.log('Connected to database :: ' + dbName);

    // Some code - Print collection names
    client.collectionNames(function(error, names){
        if(error) throw error;

        console.log("Collections");
        names.forEach(function(colData){
            var colName = colData.name.replace(dbName + ".", '')
            console.log(colName);
        });                            
    });

});

谢谢你的回答,我尝试了你建议的代码,后来在我的代码中出现了很多错误,我在原始文章中添加了一个编辑,以防有帮助。
var username    = 'username';
var passwd      = 'password';


/* establish the database connection */

var db = new MongoDB(dbName, new Server(dbHost, dbPort, {auto_reconnect: true}), {w: 1});
    db.open(function(e, aa){
    if (e) {
        console.log(e);
    }   else{
           aa.authenticate(username, passwd,function(err2,d){
             if(d){
                 console.log("Database opened");
             }
             else{
                 console.log(err2);
             }
         });

    }
});