2016-08-23 4 views
0

나는 Manning에서 Meaning 책을 읽었고 5 장의 단계를 따르면서 Mongolab에서 db를 Heroku의 애드온으로 사용하려고합니다.MongoError : getaddrinfo ENOTFOUND undefined undefined : 27017

:

var mongoose = require('mongoose'); 

var dbURI = "mongodb://localhost/loc8r"; 
if (process.env.NODE_ENV === 'production') { 
    dbURI = process.env.MONGOLAB_URI; 
} 
mongoose.connect(dbURI); 

문제 해결은 내가 가진 터미널에서 응용 프로그램을 시작 : 이것은 내 현재 코드가

MongoError: getaddrinfo ENOTFOUND undefined undefined:27017

입니다

: 나는 (로컬 및 Heroku가)에이 코드를 실행하면이 오류를 반환
NODE_ENV=production MONGOLAB_URI=/*my mongo uri here*/ 

로컬에서는 잘 실행됩니다. 그래서 문제가 어디서 오는지 확실하지 않습니다. 오류 해결에 대한 제안 사항이 있습니까?

답변

1

이 프로세스의 어떤 부분이 문제를 해결했는지 모르겠지만 Heroku에서 mongolab addon을 완전히 삭제/삭제했습니다. 그런 다음 다시 추가하고 동일한 코드를 사용하여 똑같은 단계를 수행했습니다.

도와 주신 모든 분들께 감사드립니다.

0

올바른 모양입니다. 전에이 오류 (많이)를 보았습니다. 'undefined undefined'는 환경 변수가 정의되지 않았 음을 나타냅니다. 환경 변수를 로깅하여 유효한 콘솔인지 확인하십시오.

+0

그래서 콘솔에 내 환경을 기록하고 heroku로 푸시하고 '생산'을 출력합니다. 그래서 나는 오류가'process.env.MONGOLAB_URI'를 어떤 이유로해서 사용하는 것과 관련이 있다고 짐작하고있다. – txnnxr

+0

아래 대화를 살펴보면, Pneumee는 MONGOLAB_URI가 유산이라는 것에 완전히 맞다. 그 점을 잊었습니다. MONGODB_URI는 Heroku env 변수로 사용하기를 원할 것입니다. 그러나 로컬 테스트의 경우 사용자가 직접 변수를 만들고 제공하기 때문에 중요하지 않습니다. Nodemon을 사용하여 응용 프로그램을 시작하고 있습니까? 시작하는 데 사용하는 정확한 명령은 무엇입니까? 디버깅을 위해 console.log ('DB URI :'+ process.env.MONGOLAB_URI); 이 파일의 어딘가에 있으므로 쉽게 스파이웨어를 조사 할 수 있습니다. – Adam

3

PORT NO.은 (는) mongoDB에 필요하지 않습니다.

로컬 호스트와 함께 port no.(27017)을 지정하십시오.

이 시도 :

var dbURI = "mongodb://127.0.0.1:27017/loc8r"; 

getaddrinfo ENOTFOUND 클라이언트가 지정된 주소에 연결할 수 없습니다 의미합니다. 위 주소로 시도하십시오.

이 정보가 도움이 되었기를 바랍니다.

+0

로컬에서 올바르게 실행됩니다. 문제는'MONGOLAB_URI'를 사용하려고 시도 할 때입니다. – txnnxr

1

mLab 애드온에 대해 만들어진 Heroku 환경 변수는 MONGODB_URI (MONGOLAB_URI은 기존 것일 수 있음)입니다.

+0

'MONGODB_URI'로 변경하려고 시도했지만 여전히 같은 오류를 출력했습니다. – txnnxr

+0

몽구가 연결을 시도 할 때'dbURI'가 무엇으로 설정되어 있습니까? (분명히 가면 또는 연결 문자열의 모든 민감한 정보를 변경 - 형식은 내가보고 싶어하는 것입니다). – pneumee

+0

흠. 나는 그것이 ... '정의되지 않은'것으로서 오는 것을 확인하는 것을 생각하지 않았다. 이것은 분명히 문제가되어야하지만 다른 사람들의 설정을보고 나는'process.env.MONGOLAB_URI'가 위의 코드에서 아무것도 반환하지 않는 이유를 모른다. – txnnxr

0

mLab 애드온에 대해 생성 된 Heroku 환경 변수는 MONGODB_URI (MONGOLAB_URI는 기존 것일 수 있음)입니다. (공력)

이 문제가 해결되었습니다.