2011-04-27 2 views
0

나는이 간단한 스크립트를 표현 프레임 워크와 노드 - mysql을 얻었다. 기본적으로 코드는 요청을 수신하면 클라이언트에서 요청을 수신하여 데이터베이스에 쿼리를 보냅니다. 그다음에 그것은 단지 고객에게 메시지 피드백을 보냅니다.node.JS 끝이없는 요청을 중지하는 방법은 무엇입니까?

문제는 메시지 요청이 결코 절대로 닫히지 않기 때문에 클라이언트로 전달되지 않습니다. 코드를 실행하고 내가 실제로 말하는 내용을 볼 수 있습니다. 코드에서 데이터베이스 로그인이 유효합니다. 실행하기 전에 "npm install express"및 "npm instal mysl"이 필요합니다. 코드를 파일에 저장하고 nodejs에서 실행하십시오. 난 그냥 코드를 실행하고 res.end()을 주석 4000

var mysql = require('mysql').Client, 
    express = require('express'); 

//databse work 
var client = new mysql(); 
client.host = '112.78.2.135'; 
client.user = 'vietnaml_craig'; 
client.password = 'camera'; 
client.database = 'vietnaml_db'; 
client.connect(); 

var app = express.createServer(); 

//prepare to create server session for the user 
var store = new express.session.MemoryStore; 
app.use(express.cookieParser()); 
app.use(express.session({ 
    secret: 'something', 
    store: store 
})); 
//tell server listen to get request from client 
app.get('/', function(req, res){ 
    client.query(
     'SELECT * FROM user_cookie ', 
     function selectCb(err, results, fields) { 
       res.header('Content-Type', 'text/plain'); 
       res.header('Access-Control-Allow-Origin', '*'); 
       res.send('go to go'); 
       res.end(); 
      console.log(results); 
      client.end(); 
     } 
    ); 

}); 
app.listen(4000); 
+0

당신은 어떤 응답이 데이터베이스에 의해 제공되어 있는지 여부를 확인 했 내 컴퓨터에 나를 위해 작동 : 다음 열려있는 브라우저는 ADRESS 로컬 호스트를 입력? 'if (err) { throw err;}'를'selectCB' 함수에 추가하고 쿼리가 올바르게 실행되는지 확인하십시오. – neebz

+0

안녕하세요, 코드를 편집하고 실행하여 데이터베이스에서 데이터를 가져올 수 있습니다. –

답변

2

그것은

function selectCb(err, results, fields) { 
      res.header('Content-Type', 'text/plain'); 
      res.header('Access-Control-Allow-Origin', '*'); 
      res.send('go to go'); 
      // res.end(); <- not needed? 
     console.log(results); 
     client.end(); 
    } 
+0

다른 문제가 표시 될 때까지 브라우저를 새로 고치려고 시도하십시오. –

+0

@runrunforest 또한 노드를 다시 시작하지 않고 여러 요청을 할 수 있도록'client.end();'를 주석 처리했습니다. – mak

관련 문제