복붙노트

[MONGODB] Node.js를에서 MongoDB를에 연결 ECONNREFUSED 오류

MONGODB

Node.js를에서 MongoDB를에 연결 ECONNREFUSED 오류

나는 몇 가지 매우 바보 noobish하고있어 알고 있지만, 나는 누군가가 나 Mac에서 Node.js를에서 MongoDB를에 대한 기본 데이터베이스 연결을 설정하는 데 도움이 수 바라고 있어요.

나는 사제를 사용하여 MongoDB를 설치 한, 아주 잘 작동 것으로 보인다. I는 로컬 사용자로서 로그인 서버 (mongod)를 시작하고, 제 2 단자를 열고 난 몽고을 사용하여 연결할 수 있음을 확인 하였다. 프롬프트 명령 다음에 내가 실행할 때 내가 ": 로컬 호스트 27017 / 테스트 연결"메시지가 몽고. 몽고 쉘 모두에서 몇 가지 명령을 실행하는 것은이 일하게 될 것으로 보인다. 열고 실행 두 터미널을 떠났다.

28017 : 나는 또한 로컬 호스트에서 웹 인터페이스에 도달 할 수 있음을 확인했습니다.

나는 Node.js를 설치하고, 몽구스 패키지를 추가했다. 이제 슈퍼 간단한 Node.js를 응용 프로그램을 (또한 로컬로 로그인 한 사용자 실행)를 사용하여 연결을 시도 :

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

나는 다음과 같은 오류가 발생합니다

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: connect ECONNREFUSED
    at errnoException (net.js:901:11)
    at Object.afterConnect [as oncomplete] (net.js:892:19)

작업에 대한 간단한 그래서 뭔가를 얻으려고 벽에 내 머리를 두드리는. 나는 무엇을 놓치고?

편집 : 여기 mongod의 로그가 있습니다. 당신이 볼 수 있듯이 나는 여러 번 시도하고 그들은 모두 오히려 즉시 실패하고 있습니다 :

Thu Dec  5 08:19:43.700 [initandlisten] MongoDB starting : pid=14412 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=mobadmins-MacBook-Pro-3.local
           08:19:43.700 [initandlisten] db version v2.4.8
           08:19:43.700 [initandlisten] git version: nogitversion
           08:19:43.700 [initandlisten] build info: Darwin mobadmins-MacBook-Pro-3.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May  1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
           08:19:43.700 [initandlisten] allocator: tcmalloc
           08:19:43.700 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb", logappend: "true", logpath: "/usr/local/var/log/mongodb/mongo.log", rest: true }
           08:19:43.700 [initandlisten] journal dir=/usr/local/var/mongodb/journal
           08:19:43.700 [initandlisten] recover : no journal files present, no recovery needed
           08:19:43.729 [websvr] admin web console waiting for connections on port 28017
           08:19:43.729 [initandlisten] waiting for connections on port 27017
           08:22:34.561 [initandlisten] connection accepted from 127.0.0.1:52160 #3 (1 connection now open)
           08:22:34.563 [conn3] recv(): message len 1124073472 is too large. Max is 48000000
           08:22:34.563 [conn3] end connection 127.0.0.1:52160 (0 connections now open)
           08:24:41.298 [initandlisten] connection accepted from 127.0.0.1:52166 #4 (1 connection now open)
           08:24:41.304 [conn4] end connection 127.0.0.1:52166 (0 connections now open)
           08:25:06.938 [initandlisten] connection accepted from 127.0.0.1:52168 #5 (1 connection now open)
           08:25:06.943 [conn5] end connection 127.0.0.1:52168 (0 connections now open)
           08:25:18.220 [initandlisten] connection accepted from 127.0.0.1:52172 #6 (1 connection now open)
           08:25:18.225 [conn6] end connection 127.0.0.1:52172 (0 connections now open)
           08:25:38.811 [initandlisten] connection accepted from 127.0.0.1:52175 #7 (1 connection now open)
           08:25:38.816 [conn7] end connection 127.0.0.1:52175 (0 connections now open)

해결법

  1. ==============================

    1.ECONNREFUSED 오류

    ECONNREFUSED 오류

    노드에서이 오류의 몇 가지 이유가 있습니다 :

  2. ==============================

    2.OK, 이것은 내가 위에서 게시 된 정보 진정으로 출간되지 않는 또 다른 경우였다. 내 Node.js를 응용 프로그램은 매우 간단했다, 그러나 나는 분명히이 문제를 야기 나의 Node.js를 코드에서 다른 몇 라인을 포함했다.

    OK, 이것은 내가 위에서 게시 된 정보 진정으로 출간되지 않는 또 다른 경우였다. 내 Node.js를 응용 프로그램은 매우 간단했다, 그러나 나는 분명히이 문제를 야기 나의 Node.js를 코드에서 다른 몇 라인을 포함했다.

    특히, 나는 또 다른 변수가 잘못된 DB 정보를 사용하여 별도의 데이터베이스 호출을 한 다른 코드를 호출 한 선언했다. Xinzz의 코드를 사용하는 경우, 콘솔 로그 오류가 변화하지 보였다 이유입니다. 실제로 오류를 던지는 된 mongoose.connect 명령 아니었다!

    수업 배운, 관련이없는 코드 밖으로 문제와 주석을 현지화! 죄송합니다 사람은,이 날 바보 것을 알고 있었다.

  3. ==============================

    3.설정하여 MongoDB의 연결이 코드를 사용 :

    설정하여 MongoDB의 연결이 코드를 사용 :

    var mongoose = require('mongoose');
    
    var mongoURI = "mongodb://localhost:27017/test";
    var MongoDB = mongoose.connect(mongoURI).connection;
    MongoDB.on('error', function(err) { console.log(err.message); });
    MongoDB.once('open', function() {
      console.log("mongodb connection open");
    });
    

    서버를 시작하면서 확인하여 MongoDB가 실행되어 있는지 확인합니다. 당신은 Express 또는 단순한 Node.js를 서버를 사용하고 있습니까? 위의 코드를 얻을 오류 메시지가 무엇입니까?

  4. ==============================

    4.아주 이상한,하지만 내 경우에는 내가 와이파이 연결을 전환 ...

    아주 이상한,하지만 내 경우에는 내가 와이파이 연결을 전환 ...

    나는 일부 공공 무선 랜을 사용하고 내 전화 연결로 전환

  5. ==============================

    5.나는 같은 문제가 없었다. 그것은 관리자 콘솔에서 동일한 코드를 실행하여 해결되었습니다.

    나는 같은 문제가 없었다. 그것은 관리자 콘솔에서 동일한 코드를 실행하여 해결되었습니다.

  6. ==============================

    6.Node.js를를 사용하여 간단한 휴식 API를 쓰는 동안 나는 동일한 문제에 직면했다 결국은 와이파이 차단 및 보안 이유 때문 발견했다. 모바일 핫스팟을 사용하여 연결하면보십시오. 이 경우하면 즉시 해결 얻을 것이다 이유가 될.

    Node.js를를 사용하여 간단한 휴식 API를 쓰는 동안 나는 동일한 문제에 직면했다 결국은 와이파이 차단 및 보안 이유 때문 발견했다. 모바일 핫스팟을 사용하여 연결하면보십시오. 이 경우하면 즉시 해결 얻을 것이다 이유가 될.

  7. ==============================

    7.대상 데이터베이스가 다른 시스템에있는 경우 때때로 당신은 IP, 방화벽, 포트 포워딩 등의 정당성을 확인해야합니다.

    대상 데이터베이스가 다른 시스템에있는 경우 때때로 당신은 IP, 방화벽, 포트 포워딩 등의 정당성을 확인해야합니다.

  8. ==============================

    8.저도 같은 문제를 가지고, 내가 한 모두가 몽고 서버에 연결하기 전에 약 10 초에서는 setTimeout를 추가했고 그것이 바로이 문제를 해결했다. 나는 지연을 추가했지만,이 일을 왜 몰라 ...

    저도 같은 문제를 가지고, 내가 한 모두가 몽고 서버에 연결하기 전에 약 10 초에서는 setTimeout를 추가했고 그것이 바로이 문제를 해결했다. 나는 지연을 추가했지만,이 일을 왜 몰라 ...

  9. ==============================

    9.저도 같은 문제를 가지고 있었다. 내가 한 일은 다른 터미널에서 MongoDB의 명령을 실행하는 것입니다. 그런 다음, 다른 탭에서 내 응용 프로그램을 실행합니다. 이건 내 문제가 해결. 비록, 나는 그런 연결이되기 전에 MongoDB를 실행하는 스크립트를 작성하는 등의 다른 솔루션을 시도하고있다.

    저도 같은 문제를 가지고 있었다. 내가 한 일은 다른 터미널에서 MongoDB의 명령을 실행하는 것입니다. 그런 다음, 다른 탭에서 내 응용 프로그램을 실행합니다. 이건 내 문제가 해결. 비록, 나는 그런 연결이되기 전에 MongoDB를 실행하는 스크립트를 작성하는 등의 다른 솔루션을 시도하고있다.

  10. from https://stackoverflow.com/questions/20386464/econnrefused-error-when-connecting-to-mongodb-from-node-js by cc-by-sa and MIT license