我的憑據可以與Robomongo完美配合,但我無法與node.js建立連接
我試圖使用ssh2和tunnel建立連接-ssh npm模塊並且兩次都失敗。
-The蒙戈連接不需要密碼
-The ssh連接與PEM關鍵如何使用Node.js建立到MongoDB數據庫的SSH隧道連接
這是我所使用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);
});
});
});
我不知道是否要建立TU後使用常規的MongoDB連接字符串或者將數據庫稱爲本地主機,如
mongodb:// localhost:portnumber。
或
的MongoDB://databasepath.subpath.mongodbdns.com:27000
本地主機給我一個權限被拒絕的錯誤,後者給了我一個超時
謝謝我在tunnel-ssh上花了很多時間的響應,我無法連接,我的tunnel-ssh代碼位於上面。 – user3382714
您是否在配置對象中嘗試了'username'而不是'user'? – mscdex