[node.js] nodejs-http.createServer가 두 번 호출하는 것 같습니다.

노드에 다음 프로그램을 작성하면 :

  http.createServer(function (req, res) {

    if( req.method == 'GET' ) {
      var body = ''; req.on('data', function(data) { body += data });
      req.on('end',  function() {
        console.log('request ended')
      });
    }

    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('142\n');
  }).listen(3500);

와 다음 서버를 공격 http://xxx.xx.xxx.xx:35010내가보고 request ended내 콘솔에 두 번을 – 나는 확실히 하나의 HTTP 요청을 두 번 실행이 원인이되는 이유를 모르겠어요.



답변

이는 정상적인 현상입니다. 브라우저에서 두 번 이상의 호출을합니다.

/favicon.ico예를 들어 대부분의 브라우저는 호출을 합니다.

URL을 기록해보십시오.

console.log(req.url);

그리고 당신은 무엇이 호출되는지 볼 수 있습니다.


답변

일반적으로 favicon.ico브라우저에서 가져옵니다. 그래서 두 통화.

이 문제에 대한 해결책은 요청 URL을 가져 오는지 여부를 확인할 수 있습니다 favicon.ico.

http.createServer(function (req, res) {
    if (req.url != '/favicon.ico') {
        // do your stuffs
    }
}).listen(3500);


답변