【问题标题】:Printing the data retrieved from database as response in node.js打印从数据库检索到的数据作为 node.js 中的响应
【发布时间】:2014-01-14 20:12:47
【问题描述】:

我是 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 的教程。

【问题讨论】:

  • 试试,"&lt;p&gt;Registered users are " + util.inspect(results) + ".&lt;/p&gt;";
  • 使用 util.inspect 或 JSON.stringify/parse
  • @thefourtheye 是的,谢谢。但仍然给出“调用退出后无法排队握手”

标签: javascript mysql node.js


【解决方案1】:

基于 cmets,听起来您正在客户端上进行一些处理,以便在通过 ajax 获取模板后将其绑定到模板?

鉴于此,您应该考虑不在服务器上做任何模板,而只是发送 json 数据,例如而不是&lt;p&gt;Registered users are " + util.inspect(results) + ".&lt;/p&gt;";,你只需要util.inspect(results)

您可能还希望将 Content-Type 标头设置为 application/json,以便您的客户端框架通过检查标头来实现的任何魔术都可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2011-10-09
    • 2014-01-03
    • 2015-01-27
    • 1970-01-01
    • 2020-04-12
    相关资源
    最近更新 更多