Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 通过nodejs通过ssh用户名/密码连接到mongodb_Node.js_Mongodb - Fatal编程技术网

Node.js 通过nodejs通过ssh用户名/密码连接到mongodb

Node.js 通过nodejs通过ssh用户名/密码连接到mongodb,node.js,mongodb,Node.js,Mongodb,我正在尝试通过nodejs通过ssh用户名/密码连接到Mongodb,如下所示: var mongoose = require('mongoose'); var tunnel = require('tunnel-ssh'); var config = { username : 'xyz', host: 'xx-xxx-xx.com', port:22, password:'xxx', dstPort:27017, localPort:27017 }; console.log(tunnel);

我正在尝试通过nodejs通过ssh用户名/密码连接到Mongodb,如下所示:

var mongoose = require('mongoose');
var tunnel = require('tunnel-ssh');

var config = {
username : 'xyz',
host: 'xx-xxx-xx.com',
port:22,
password:'xxx',
dstPort:27017,
localPort:27017
};

console.log(tunnel);
var server = tunnel(config, function (error, server) {

if(error){
    console.log("SSH connection error: " + error);
}
console.log(server);
mongoose.connect('mongodb://localhost:27017/myDB');

var db = mongoose.connection;
console.log(db);
db.on('error', console.error.bind(console, 'DB connection error:'));
db.once('open', function() {
    console.log("DB connection successful");
});
});
但我得到的错误如下: 数据库连接错误:{MongoError:到本地主机的连接0:27017超时


这里的问题是什么?

可能是因为您在配置选项中缺少“DSTOST”

“DSTOST”必须是目标服务器url

从官方


我尝试添加了DSTOST。但是我得到了相同的错误。您是否也在选项中添加了localHost:'127.0.0.1'?是的,我也尝试了添加localHost:'127.0.0.1'。但是得到了相同的结果。您可以不使用隧道连接到本地数据库吗?如果是这样,那么您的ssh服务器肯定缺少一些配置,请查看此线程可能您没有需要私钥吗?我可以连接到localdb,没有错误。我没有任何私钥。通过ssh用户名/密码,我可以在MongoDB Compass中连接,但不能从nodejs程序连接
 var config = {
      username:'root',
      Password:'secret',
      host:sshServer,
      port:22,
      dstHost:destinationServer,
      dstPort:27017,
      localHost:'127.0.0.1',
      localPort: 27000
    };

    var tunnel = require('tunnel-ssh');
    tunnel(config, function (error, server) {
      //.... 
    });