I've tried to connect to mongodb with node.js, but get the following error. Although I've tried several available solution in this platform, like, changing my DNS to Google's Public DNS, downgrading the node.js driver's version for connection string, but they did not work out for me.
Error: queryTxt ETIMEOUT cluster0.1moqz.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:213:19) {
errno: 'ETIMEOUT',
code: 'ETIMEOUT',
syscall: 'queryTxt',
hostname: 'cluster0.1moqz.mongodb.net'
}
here is my server side code:
const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.1moqz.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`;
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 });
async function run() {
try {
await client.connect();
const userCollection = client.db('myTestDB').collection('users');
const newUser = { name: "username", email: "abc@def.com" };
const result = await userCollection.insertOne(newUser);
console.log("adding new user", result);
}
finally {
await client.close();
}
}
run().catch(console.dir);
Have you added you IP address to the IP Access List?
You must add your IP to the access list in order to access the database (from that IP). To do this: