我的凭据可以与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