Я пытаюсь подключиться к облачному серверу, который запускает мою MongoDB с моей локальной машины. Я использую tunnel-ssh в создаваемом мною приложении Node.js, однако у меня, похоже, много проблем, и я не до конца понимаю, что происходит.
Проблемы
- Я не на 100% уверен, что успешно подключился к серверу. Там нет ошибки, однако, когда я
console.log(server)
он говорит _connections: 0,
. смотрите полный журнал ниже. - Если я подключаюсь и затем пытаюсь запустить функцию
getDataFromMongoDB
, она возвращает ошибку, EADDRINUSE: адрес уже используется 127.0.0.1:27000.
У меня естьпытался обернуть голову вокруг этого весь день, и я никуда не денусь. Пожалуйста, помогите.
Ошибка 1 - Подключается ли сервер
Server {
_events:
[Object: null prototype] { connection: [Function], close: [Function] },
_eventsCount: 2,
_maxListeners: undefined,
_connections: 0,
_handle:
TCP {
reading: false,
onread: null,
onconnection: [Function: onconnection],
[Symbol(owner)]: [Circular] },
_usingWorkers: false,
_workers: [],
_unref: false,
allowHalfOpen: false,
pauseOnConnect: false,
_connectionKey: '4:127.0.0.1:27017',
[Symbol(asyncId)]: 7 }
Код
var config = {
username: "root",
Password: "password on the server",
host: "server IP address",
port: 22,
dstHost: "127.0.0.1",
dstPort: 27017,
localHost: "127.0.0.1",
localPort: 27000
};
var tnl = tunnel(config, function(error, tnl) {
if (error) {
console.log(error);
}
// yourClient.connect();
// yourClient.disconnect();
console.log(tnl);
getDataFromMongoDB();
});
async function getDataFromMongoDB(page) {
const MongoClient = require("mongodb").MongoClient;
const uri = "mongodb://USRNAME:PASSWORD_FOR_MONGDB_DATABASE@localhost:27017";
const client2 = new MongoClient(uri, { useNewUrlParser: true });
const client = await connectToMongodb(client2);
const collection = client.db("my_database_name").collection("jobs");
const jobs = await collection.find().toArray();
console.log("jobs", jobs);
}
function connectToMongodb(client) {
return new Promise((resolve, reject) => {
client.connect(function(err) {
console.log("connected", err);
return resolve(client);
});
});
}