Мои учетные данные отлично работают с Robomongo, но я не могу установить соединение с node.js
Я попытался подключиться, используя ssh2 и tunnel -ssh npm и не удалось оба раза.
-The Монго соединение не требует пароля
-The соединение SSH производится с помощью ЕГО ключаКак использовать Node.js для подключения туннелирования SSH к базе данных MongoDB
Это код, который я использовал с ssh2 модулем, я могу правильно установить туннелирование но соединение Монго терпит неудачу
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
});
И коды туннель-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);
});
});
});
Я не уверен, следует ли использовать обычную строку подключения MongoDB после установления вт nnel или ссылаться на базу данных как на localhost, такую как
mongodb: // localhost: portnumber.
или
MongoDB: //databasepath.subpath.mongodbdns.com: 27000
Localhost дает мне разрешение отказано ошибка, последний дает мне таймаут
спасибо за ответ, который я потратил много времени на tunnel-ssh, я не смог его подключить, мой код для tunnel-ssh выше. – user3382714
Вы попробовали 'username' вместо' user' в вашем файле конфигурации? – mscdex