Im trying to connect my mongoose with my MongoDB Atlas Cluster. It currently has no database or anything but whenever I try:
mongoose.connect( uri || 'mongodb://localhost/test',options)
.then(()=>{
console.log("Connected to the Database. Yayzow!");
})
.catch(err => {
console.log(err);
});
I get this message:
Error: queryTxt ETIMEOUT cluster0-ghis2.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:202:19) {
errno: 'ETIMEOUT',
code: 'ETIMEOUT',
syscall: 'queryTxt',
hostname: 'cluster0-ghis2.mongodb.net'
}
My dependencies:
"dependencies": {
"express": "^4.17.1",
"mongodb": "^3.5.7",
"mongoose": "^5.9.14"
}
I've whitelisted all IPs as off now (0.0.0.0/0). Also I've made sure my firewall is disconnected and so is my anti-virus. I made my friend check it out too and it did work for him but not me
Any help is appreciated!
EDIT
Solved the error by changing my DNS to Google's Public DNS! If anyone get this error just make sure to change your DNS. Throwing a link for the same here
The error because of the version of you node and npm, to remove this error you just need to change you connection String by going to Connect and connect to Application
You need to add &ssl=true
in your url, and your complete url should look like this
mongodb+srv://<user>:<password>@********.mongodb.net/<db name>?authSource=admin&compressors=zlib&retryWrites=true&w=majority&ssl=true
Changing DNS to 8.8.8.8 works for me.
Before changing my DNS, I tried to reinstall mongoose, check my connection, and turn off my vpn. None of them worked.
to solve this issue make sure to choose older version of node (2.2.12) or later
and then make sure to add your ip address whitelisted
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With