2014-01-14 146 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,以便您的客户端框架通过检查标头所要执行的任何魔术都能正常工作。