So I'm working my way though the Getting Mean book from Manning and following the steps in Chapter 5 I'm trying to use a db on Mongolab as an add-on to Heroku. When I run this code (both locally and on Heroku) it returns this error:
MongoError: getaddrinfo ENOTFOUND undefined undefined:27017
This is my current code:
var mongoose = require('mongoose');
var dbURI = "mongodb://localhost/loc8r";
if (process.env.NODE_ENV === 'production') {
dbURI = process.env.MONGOLAB_URI;
}
mongoose.connect(dbURI);
Troubleshooting I started the app from the terminal with:
NODE_ENV=production MONGOLAB_URI=/*my mongo uri here*/
with that it runs fine locally. So I'm not sure where the issue is coming from. Any suggestions for troubleshooting the error listed?
I think you are not providing the PORT NO.
required for mongoDB
.
Please give the port no.(27017)
along with localhost.
Try this:
var dbURI = "mongodb://127.0.0.1:27017/loc8r";
getaddrinfo ENOTFOUND
means client was not able to connect to the given address. Please try with the above address.
I hope this helps.
You just missed specifying the port number as shown:
var dbURI = "mongodb://localhost:27017/thenDBname"
Make sure to change localhost while hosting on production server.
I have the same problem, other solutions not work for me but i did that with this way
for mongo URI you must use your mongodb
service name
instead127.0.0.1
orlocalhost
for example in below docker-compose file my mongo service name is mongodb-myapp
and i change uri like this mongodb://mongodb-myapp:27017/myapp
and it works for me
services:
boilerplate-api-app:
build: .
environment:
- MONGO_URI=mongodb://mongodb-myapp:27017/myapp
volumes:
- .:/app
ports:
- "5000:5000"
depends_on:
- mongodb-myapp
mongodb-myapp:
image: mongo
ports:
- "27017:27017"
The Heroku environment variable that gets created for an mLab add-on is called MONGODB_URI
(MONGOLAB_URI
may be a legacy thing).
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