Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MongoError: getaddrinfo ENOTFOUND undefined undefined:27017

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?

like image 689
txnnxr Avatar asked Aug 23 '16 19:08

txnnxr


4 Answers

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.

like image 192
Ravi Shankar Bharti Avatar answered Nov 12 '22 07:11

Ravi Shankar Bharti


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.

like image 24
Itguymax Avatar answered Nov 12 '22 07:11

Itguymax


if you use docker with this problem, I solve that with this solution

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 instead 127.0.0.1 or localhost

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"
like image 5
hamidreza nikoonia Avatar answered Nov 12 '22 05:11

hamidreza nikoonia


The Heroku environment variable that gets created for an mLab add-on is called MONGODB_URI (MONGOLAB_URI may be a legacy thing).

like image 1
pneumee Avatar answered Nov 12 '22 05:11

pneumee