내 자격 증명이 Robomongo에서 완벽하게 작동하지만 node.js와 연결할 수 없습니다.
ssh2 및 터널을 사용하여 연결을 시도했습니다. -ssh npm 모듈이며 두 번 실패했습니다.
년 - 몽고 연결이
년 - ssh 연결이 내가 SSH2 모듈과 함께 사용했던 코드Node.js를 사용하여 MongoDB 데이터베이스에 SSH 터널링 연결을 만드는 방법
키를 PEM로 만든 암호를 필요로하지 않는다, 나는 제대로 터널링을 설정할 수 있지만, 몽고의 연결이 실패합니다
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 또는
mongodb : // localhost : portnumber와 같은 데이터베이스를 localhost로 참조하십시오.
또는
MongoDB를 : //databasepath.subpath.mongodbdns.com : 27000
로컬 호스트 나에게 권한 거부 오류를 제공가, 후자는 나에게 mongoose
이후
덕분에 (당신이 localPort에 정의 된 localport 사용) 나는 터널 -ssh에서 좋은 시간을 보냈다. 터널 -ssh에 대한 나의 코드는 위와 같다. – user3382714
config 객체에서'user' 대신'username'을 시도 했습니까? – mscdex