通过nodejs通过ssh用户名/密码连接到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); 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超时
这里有什么问题?
可能是因为你在configuration选项中缺less'dstHost'。
'dstHost'必须是目标服务器的URL。
从官方隧道ssh文档
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) { //.... });
- 在db.create模型中使用Mongoose.Schema.Types.Decimal时发生ValidationError
- mongodb不会从nodejs开始
- NPM安装Mongoose Kerberos错误gss_acquire_cred_impersonate_name
- 如何在mongodb中推送新文档,但只有在不存在的情况下才能推送新文档?
- 如何自动更新Mongodb中的Upsert上的时间戳
- 将MongoDB集合迭代到帕格
- 如何sorting导致nodejs – mongodbsearch,但通过调用dynamic方法
- Nodejs api根据查询string值加载数据
- 我如何使用mongoose/ mongodb在单个查询中应用$ match,$ group和$ sum