在node.js中打印从数据库检索的数据作为响应

时间:2014-01-14 05:14:14

标签: javascript mysql node.js

我是node.js的初学者,对不起,如果我出错了。

我想在localhost:3000打印而不是在console.log()中打印数据。

这里我从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);

浏览器中的输出是:

注册用户是[object Object],[object Object]。

命令提示符中的错误是:

调用退出后,

无法将握手排队。

如果我完全错了,请给我一些关于node.js的教程。

1 个答案:

答案 0 :(得分:0)

根据评论,听起来你在客户端做一些处理,在通过ajax获取模板后将其绑定到模板上?

鉴于此,你应该考虑不在服务器上进行任何模板化,而只是发送json数据,例如而不是<p>Registered users are " + util.inspect(results) + ".</p>";你只会做util.inspect(results)

您可能还希望将Content-Type标头设置为application/json,以便通过检查标头可以使客户端框架想要做的任何魔法都有效。