2014-01-14 148 views
2

我是node.js的初學者,對不起,如果我出錯了。
在node.js中打印從數據庫檢索到的數據作爲響應

我不想在console.log()中打印數據,而是想在localhost:3000上打印。

這裏我從MYsql數據庫中檢索數據,當我用console.log()完成時,一切正常。 但是當我用http請求和響應編寫代碼時,它出錯了。

我db.js是

var http = require("http"); 
    var port = 3000; 
    var serverUrl = "localhost"; 
    var mysql = require('mysql'); 
    var connection = mysql.createConnection({ 

     host : 'localhost', 
     user : username, 
     password: password, 
     database: "wst" 

    }); 

    var server = http.createServer(function(req, res) { 

    console.log("Request: " + req.url); 
    connection.connect(); 

    connection.query('select * from welcome',function(err, results, fields){ 

    //console.log(results); 
    //console.log(fields); 
    var html = "<p>Registered users are " + results + ".</p>"; 
    res.end(html); 

     }); 

    connection.end(); 

    }); 



    console.log("Listening at " + serverUrl + ":" + port); 

    server.listen(port, serverUrl); 

並在瀏覽器的輸出是:

註冊用戶是[對象的對象],[對象的對象。

而且在命令提示符的錯誤是:

不能調用退出後排隊握手。

如果我完全錯了,請給我一些關於node.js的教程。

+0

嘗試,' 「

註冊用戶 」+ util.inspect(結果)+「

。」' – thefourtheye

+0

使用util.inspect或JSON.stringify /解析 – Andrew

+0

@thefourtheye是的,它的工作thanks.But仍然給人「不能enqueue調用quit之後的握手「 –

回答

0

基於評論,這聽起來像你在客戶端上做一些處理,以通過ajax獲取後將其綁定到模板?因此,你應該考慮不在服務器上做任何模板,而是隻發送json數據,例如,而不是<p>Registered users are " + util.inspect(results) + ".</p>";你只需要做util.inspect(results)

您可能還需要將Content-Type標頭設置爲application/json,以便您的客戶端框架通過檢查標頭所要執行的任何魔術都能正常工作。