복붙노트

[MONGODB] 오류 : GET 호출에 대한 nodejs에서한다 getaddrinfo의 ENOTFOUND

MONGODB

오류 : GET 호출에 대한 nodejs에서한다 getaddrinfo의 ENOTFOUND

나는 아래에 부여되는 코드 노드에서 웹 서버를 실행하고

var restify = require('restify');

var server = restify.createServer();

var quotes = [
  { author : 'Audrey Hepburn', text : "Nothing is impossible, the word itself says 'I'm possible'!"},
  { author : 'Walt Disney', text : "You may not realize it when it happens, but a kick in the teeth may be the best thing in the world for you"},
  { author : 'Unknown', text : "Even the greatest was once a beginner. Don't be afraid to take that first step."},
  { author : 'Neale Donald Walsch', text : "You are afraid to die, and you're afraid to live. What a way to exist."}
];

server.get('/', function(req, res) {
  res.json(quotes);
});

server.get('/quote/random', function(req, res) {
  var id = Math.floor(Math.random() * quotes.length);
  var q = quotes[id];
  res.json(q);
});

server.get('/quote/:id', function(req, res) {
  if(quotes.length <= req.params.id || req.params.id < 0) {
    res.statusCode = 404;
    return res.send('Error 404: No quote found');
  }

  var q = quotes[req.params.id];
  res.json(q);
});

server.listen(process.env.PORT || 3011);

그리고 난 다음 코드에서 GET 요청을 수행 할

var https = require('http');

/**
 * HOW TO Make an HTTP Call - GET
 */
// options for GET
var optionsget = {
    host : 'http://localhost',
    port : 3010,
    path : '/quote/random', // the rest of the url with parameters if needed
    method : 'GET' // do GET
};

console.info('Options prepared:');
console.info(optionsget);
console.info('Do the GET call');

// do the GET request
var reqGet = https.request(optionsget, function(res) {
    console.log("statusCode: ", res.statusCode);
    // uncomment it for header details
//  console.log("headers: ", res.headers);


    res.on('data', function(d) {
        console.info('GET result:\n');
        process.stdout.write(d);
        console.info('\n\nCall completed');
    });

});

reqGet.end();
reqGet.on('error', function(e) {
    console.error(e);
});

난 그냥 노드로 시작하고 이것이 올바른 방법 인 경우 난 잘 모릅니다. 나는 내가 쓴 서버 코드에 대한 아파치 벤치 마크 테스트를 수행 한 표현과 restify.I의 성능을 검사 할 나중에 다음 원격 서비스를 호출하여 좀 더 테스트 할 더욱 좋아 restify이라고 모순되는 결과를 발견 내 시작 요점이야 오류를 얻고있다 위의 코드 mongodb.The에 쓰기 읽기

{ [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }

내가 쓰기 방향으로 향하고이어야 있습니까? 내가 원하는 것을 시험의 종류에 대한 권리 방법은 무엇입니까? 이유는 결과가 빨리 표현보다 더 restify 거죠? 누구든지 노드 / 표현 / 백본 및 MongoDB에의 응용 프로그램에 대한 최선의 시작점 자습서에 나를 인도 할 수 있습니까?

해결법

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

    1.getaddrinfo를 ENOTFOUND 수단 클라이언트는 지정된 주소에 연결할 수 없습니다. HTTP하지 않고 호스트를 지정 시도하십시오 :

    getaddrinfo를 ENOTFOUND 수단 클라이언트는 지정된 주소에 연결할 수 없습니다. HTTP하지 않고 호스트를 지정 시도하십시오 :

    var optionsget = {
        host : 'localhost',
        port : 3010,
        path : '/quote/random', // the rest of the url with parameters if needed
        method : 'GET' // do GET
    };
    

    자원을 학습에 관해서는, 당신은 깊이있는 지식을 더 얻기 위해 좋은 책을 통해 이동 한 후 http://www.nodebeginner.org/으로 시작하면 당신은 잘못 가지 않을 것이다 - 나는 프로페셔널 Node.js를 추천하지만, 많은 밖으로 거기 그곳에.

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

    2.나를 위해 그것을에서의 / etc / hosts 파일 때문에 호스트 이름이 추가되지 않습니다이었다

    나를 위해 그것을에서의 / etc / hosts 파일 때문에 호스트 이름이 추가되지 않습니다이었다

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

    3.이 같은 호스트 파일을 확인

    이 같은 호스트 파일을 확인

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1   localhost
    255.255.255.255 broadcasthost
    
  4. ==============================

    4.내가 왜하지만 mongodb.MongoClient.connect에 127.0.0.1에 로컬 호스트하는 데에서 url 매개 변수를 변경 설명 할 수 없다 () 윈도우 10의 방법은 문제를 해결했다.

    내가 왜하지만 mongodb.MongoClient.connect에 127.0.0.1에 로컬 호스트하는 데에서 url 매개 변수를 변경 설명 할 수 없다 () 윈도우 10의 방법은 문제를 해결했다.

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

    5.나는 또한 같은 문제를 겪고 난 바로 프록시를 사용하여 고정. 당신이 프록시 네트워크를 사용하는 경우 이중 프록시 설정을 확인하시기 바랍니다.

    나는 또한 같은 문제를 겪고 난 바로 프록시를 사용하여 고정. 당신이 프록시 네트워크를 사용하는 경우 이중 프록시 설정을 확인하시기 바랍니다.

    이 당신을 도울 것입니다 희망 -

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

    6.

    var connection = mysql.createConnection({
        localAddress     : '35.160.300.66',
        user     : 'root',
        password : 'root',
        database : 'rootdb',
    });
    

    MySQL의 체크 노드 모듈 https://github.com/mysqljs/mysql

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

    7.나는 새로운 이온 응용 프로그램을 설치하려고 할 때 다음과 같이 내가 같은 오류가 발생했습니다 나는 많은 소스를 시도하고 사용자 환경 및 시스템 환경에서 만든 실수가 불필요하게 PROXY 값을 포함 발견했다. 나는```사용자 변수를 제거 에 http : // 호스트 : 포트 대리

    나는 새로운 이온 응용 프로그램을 설치하려고 할 때 다음과 같이 내가 같은 오류가 발생했습니다 나는 많은 소스를 시도하고 사용자 환경 및 시스템 환경에서 만든 실수가 불필요하게 PROXY 값을 포함 발견했다. 나는```사용자 변수를 제거 에 http : // 호스트 : 포트 대리

    시스템 변수 HTTP_PROXY 에 http : // 사용자 이름 : 암호 @ 호스트 : 포트```` 지금은 문제없이 잘 작동합니다.

    [ERROR] Network connectivity error occurred, are you offline?
    
            If you are behind a firewall and need to configure proxy settings, see: https://ion.link/cli-proxy-docs
    
            Error: getaddrinfo ENOTFOUND host host:80
    
  8. ==============================

    8.

    var http = require('http');
    
      var options = {     
          host: 'localhost',
          port: 80,
          path: '/broadcast'
        };
    
      var requestLoop = setInterval(function(){
    
          http.get (options, function (resp) {
            resp.on('data', function (d) {
              console.log ('data!', d.toString());
            });
            resp.on('end', function (d) {
               console.log ('Finished !');
            });
          }).on('error', function (e) {
              console.log ('error:', e);
          });
      }, 10000);
    
    var dns = require('dns'), cache = {};
    dns._lookup = dns.lookup;
    dns.lookup = function(domain, family, done) {
        if (!done) {
            done = family;
            family = null;
        }
    
        var key = domain+family;
        if (key in cache) {
            var ip = cache[key],
                ipv = ip.indexOf('.') !== -1 ? 4 : 6;
    
            return process.nextTick(function() {
                done(null, ip, ipv);
            });
        }
    
        dns._lookup(domain, family, function(err, ip, ipv) {
            if (err) return done(err);
            cache[key] = ip;
            done(null, ip, ipv);
        });
    };
    
    // Works fine (100%)
    
  9. ==============================

    9.저도 같은 문제로 실행하고 약간의 시행 착오 후에 나의 호스트 파일 사용자 정의 문제를 일으키는 것을 발견되었다.

    저도 같은 문제로 실행하고 약간의 시행 착오 후에 나의 호스트 파일 사용자 정의 문제를 일으키는 것을 발견되었다.

    내 로컬 호스트 DNS는 덮어 쓰기 때문에 간단한 ping이 실패하는 것을이었다 :

    $ ping http://localhost
    # ping: cannot resolve http://localhost: Unknown host
    

    나는 성공적으로 일을 로컬 호스트 핑의 / 개인 / etc / hosts 파일 구성을 해결하지 않고, 더 이상 당신이보고되었다는 오류가 발생했습니다되면 :

    # Fatal error: getaddrinfo ENOTFOUND
    
  10. from https://stackoverflow.com/questions/23259697/error-getaddrinfo-enotfound-in-nodejs-for-get-call by cc-by-sa and MIT license