Я не использовал упомянутый вами пакет tunnel-ssh
, но просмотрел документы и вижу, что вы используете его неправильно. Я просто скопировал конфигурацию, указанную в документации tunnel-ssh
, и она начала работать для меня. вставка всего кода ниже
const tunnel = require("tunnel-ssh");
const MongoClient = require("mongodb").MongoClient;
const connection = new Promise((resolve, _) => {
// eslint-disable-next-line
tunnel(
{
username: "root",
Password: "secret",
host: "127.0.0.1",
port: 22,
dstHost: "127.0.0.1",
dstPort: 27017,
localHost: "127.0.0.1",
localPort: 27000
},
async (err, server) => {
server.on("connection", console.log.bind(console, "server error"));
const client = await MongoClient.connect(
"mongodb://localhost:27017/user",
{
useUnifiedTopology: true,
useNewUrlParser: true
}
);
client.on("error", console.error.bind(console, "mongodb error"));
resolve({ client });
server.close();
}
);
});
async function runQuery() {
const { client } = await connection;
console.log("Connection Successful");
}
runQuery();
Часть, в которой вы ошиблись, передает строку в пакет туннеля. ожидается, что объект конфигурации не строка.