2014-11-15 3 views
0

전적으로 저를 망설이는 것처럼 보이는 문제가있는 것 같습니다. 내가/mongotest, 콘솔 로그 '! 성공적인 연결'로 이동하지만,없는 것nodejs의 임베디드 함수에서 response.write가 작동하지 않습니다.

var url = require('url'); 
var mongoClient = require('mongodb').MongoClient; 
var server = require('http').createServer(function(request,response) { 
    switch (url.parse(request.url).pathname) { 
    case '/mongotest': 
     mongoClient.connect('mongodb://localhost:27017', function(err,db) { 
     if(!err) console.log('Connection successful!'); 
     response.writeHead(200, {'Content-Type':'text/plain'}); 
     response.write('Text to output to browser'); 
     }); 
     break; 
    case default: 
     response.writeHead(200, {'Content-Type':'text/plain'}); 
     response.write('Request for ' + url.parse(request.url).pathname + ' received.'); 
    } 
    res.end(); 
}); 
server.listen(8080); 

매번 전혀 브라우저에있는 모든 출력하고, 어느 쪽도 writeHead을 수행 내 현재 노드의 설정은 없습니다 전혀 보이지 않는다.

어떤 도움이 필요합니까?

는 비동기 connect 콜백에 res.write 호출하기 전에 response.end()를 호출하고, 당신이 가정 res.end()

답변

2

response.end() 있어야한다 :) 감사합니다.

당신은 다음과 같이 콜백에 그 전화를 이동해야합니다

var server = require('http').createServer(function(request,response) { 
    switch (url.parse(request.url).pathname) { 
    case '/mongotest': 
     mongoClient.connect('mongodb://localhost:27017', function(err,db) { 
     if(!err) console.log('Connection successful!'); 
      response.writeHead(200, {'Content-Type':'text/plain'}); 
      response.write('Text to output to browser'); 
      response.end(); 
     }); 
     break; 
    case default: 
     response.writeHead(200, {'Content-Type':'text/plain'}); 
     response.write('Request for ' + url.parse(request.url).pathname + ' received.'); 
     response.end(); 
    } 
}); 
+0

당신, 선생님, 신이다. 감사합니다. – adalal

관련 문제