Meine Anmeldeinformationen funktionieren perfekt mit Robomongo, aber ich kann die Verbindung mit node.js nicht herstellen
Ich habe versucht, die Verbindung mit ssh2 und Tunnel zu machen -ssh npm-Modul und beide Male fehlgeschlagen.
-Die Mongo Verbindung erfordert kein Passwort
-Der SSH-Verbindung mit einem pem SchlüsselVerwendung von Node.js, um eine SSH-Tunnelverbindung zu einer MongoDB-Datenbank herzustellen
Dieser gemacht wird, ist der Code, den ich mit SSH2-Modul verwendet habe, kann ich den Tunnel richtig etablieren, aber die Mongo Verbindung schlägt fehl
var Client = require('ssh2').Client;
var conn = new Client();
conn.on('ready', function() {
console.log('Client :: ready');
//mongo connection
mongoose.connect('mongodb://localhost:27000/');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("database connection established");
var users = db.collection('user');
var getallUsers = function (date, callback){
users.find({}).toArray(function(err,data){
callback(data);
})
};
getallUsers(null, function (data){
console.log('data :'+ data);
});
});
//end of mongo connection
}).connect({
host: '**.**.**.**.**',
port: 22,
username: 'ec2-user',
privateKey: key
});
und der Code der Tunnel-ssh
var config = {
dstPort: 27000,
user: 'ec2-user',
host: '**.**.**.**.**',
privateKey: key
};
var server = tunnel(config, function (error, server) {
if(error){
console.log("SSH connection error: " + error);
}
console.log('database connection initalizing');
mongoose.connect('mongodb://localhost:27000/');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("database connection established");
var users = db.collection('user');
var getallUsers = function (date, callback){
users.find({}).toArray(function(err,data){
callback(data);
})
};
getallUsers(null, function (data){
console.log(data);
});
});
});
ich bin nicht sicher, ob die regelmäßige Zeichenfolge MongoDB-Verbindung zu verwenden, nachdem die tu Gründung nnel oder Verweis auf die Datenbank als localhost wie
mongodb: // localhost: portnumber.
oder
mongodb: //databasepath.subpath.mongodbdns.com: 27000
Lokaler Host mir eine Erlaubnis verweigert Fehler gibt, gibt letztere mir eine Auszeit
Dank für die antwort, die ich eine menge zeit auf tunnel-ssh verbracht habe, ich konnte es nicht erreichen, mein code für tunnel-ssh ist oben. – user3382714
hast du 'username' anstelle von' user' in deinem config-Objekt versucht? – mscdex