Я пытаюсь получить доступ к своей базе данных MongoDB, размещенной снаружи на сервере, используя tunnel-ssh
внутри функции. Я не получаю никаких ошибок, когда я запускаю функцию туннеля, она, кажется, останавливается, когда она достигает const client = await connectToMongodb(client2);
, когда функция getDataFromMongoDB
запущена. Когда я запускаю это локально без SSH, все работает нормально, поэтому я предполагаю, что это связано с компонентом туннеля SSH. Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так здесь.
var config = {
username: "myusername",
privateKey: require("fs").readFileSync("../id_rsa"),
host: "207.138.88.161",
port: 22,
dstHost: "11.12.97.2",
dstPort: 27017,
localHost: "127.0.0.1",
localPort: 27000
};
tunnel(config, function(error, server) {
//....
if (error) {
console.log(error);
}
console.log(server);
getDataFromMongoDB();
});
async function getDataFromMongoDB(page) {
const MongoClient = require("mongodb").MongoClient;
const uri = "mongodb://username:password@11.12.97.2:27017/mydatabase";
const client2 = new MongoClient(uri, { useNewUrlParser: true });
const client = await connectToMongodb(client2);
const collection = client.db("mydatabase").collection("jobs");
const jobs = await collection.find().toArray();
client.close();
client2.close();
console.log(jobs);
}
function connectToMongodb(client) {
return new Promise((resolve, reject) => {
client.connect(function(err) {
return resolve(client);
});
});
}