2012-01-12 132 views
0

檢查代碼處理JSON響應異步

var server = http.createServer(function(req, res){ 
    var parsedUrl = require('url').parse(req.url); 
    var pathname = parsedUrl.pathname; 
    pathname = pathname.replace('/get/',''); 

    GPSData.find({}, function(err, data) { 
     if(err) 
      console.log(err, data, data.length); 
     res.writeHead(200, { 
       "Content-Type": "application/json", 
       "Access-Control-Allow-Origin": "*" 
     }); 
     console.log('hello'); 
     res.end(data); 
    }); 

}); 

如何從數據庫和演出得到響應JSON數據?如果我移動res.end(「一些JSON的」)出GPSData.find的(),那麼我可以看到我的網頁瀏覽器,但如何從數據庫響應顯示數據?

如何異步處理這一切呢?

+0

這不應該是異步,除非你真的想單獨渲染頁面和JSON(通過網頁套接字或其他)之前,我的字符串化數據。如果您在回調中保留res.end,那麼頁面無法呈現的問題是? – glortho 2012-01-12 20:47:55

+0

是如果res.end是回調裏面,頁面不呈現 – coure2011 2012-01-13 05:01:22

+0

和「你好」得到輸出到控制檯?那時數據看起來像什麼? – glortho 2012-01-13 05:06:13

回答

0

好吧,我發現我需要回送響應

var body = JSON.stringify(data); 
res.end(body); 
0

如果瀏覽器顯示「該網頁無法使用」,那麼無論是你應該得到一些錯誤信息的控制檯,或者你只是在最後失蹤server.listen(<port_number>);