nodejs函数后没有数据返回

时间:2016-01-04 16:19:29

标签: node.js

我对nodejs和expressjs很陌生。有人可以确保我做对了。每次我通过网络执行回复,例如/names/status/10000036/没有显示任何数据。

代码:

app.get('/names/status/:id', function(req, res) {
  var data = {
    ToonID: req.params.id
  }
  connection.query('SELECT * FROM NameApproval WHERE ToonID = ?', data.ToonID, function(err, rows, fields) {
      if (err) throw (err);

      var id = rows[1];
      var wishname = rows[2];
      var result = rows[3];

      var response = {
        ToonID: id,
        WishName: wishname,
        Result: result
      };
      res.send(JSON.stringify(response));
  });
});

它成功连接到数据库,但它返回一个简单的json { }

我正在使用ExpressJS,mysql-node modules。

由于

3 个答案:

答案 0 :(得分:0)

编辑:在我读完问题之前,先前的答案是愚蠢地发布了

您从行数组中未填充的位置获取id,wishname和result。您只想设置对行[0]的响应。

我仍在对数据库引擎做出假设。您应该真正指定您正在使用的数据库库以及它所连接的数据库。

您还需要将第二个参数作为数组传递给connection.query。以下是对代码的完整更正:

app.get('/names/status/:id', function(req, res) {
  var data = {
    ToonID: req.params.id
  }
  connection.query('SELECT id, wishname, result FROM NameApproval WHERE ToonID = ?', [data.ToonID], function(err, rows, fields) {
      if (err) throw (err);

      var id = rows[0][0];
      var wishname = rows[0][1];
      var result = rows[0][2];

      var response = {
        ToonID: id,
        WishName: wishname,
        Result: result
      };
      res.send(JSON.stringify(response));
  });
});

答案 1 :(得分:0)

我认为maven-resources-plugin选项值是错误的,它应该是一个数组:

data.ToonID

使用connection.query('SELECT * FROM NameApproval WHERE ToonID = ?', [data.ToonID], function(err, rows, fields) {

更改data.ToonID

如上所述:https://github.com/felixge/node-mysql#escaping-query-values

答案 2 :(得分:0)

所以我修好了。 数组存在问题。我不知道顶部的 ToonID ToonID { }来自哪里。但是感谢所有帮助过的人。 :)

<强>输出

{
   ToonID: {
       ToonID: "10000036",
       WishName: "brownzilla",
       Result: "PENDING"
  }
}

<强>代码

app.get('/names/status/:id', function(req, res) {
  var data = {
    ToonID: req.params.id
  }
  connection.query('SELECT * FROM NameApproval WHERE ToonID = ?', [data.ToonID], function(err, rows, fields) {
      if (err) throw (err);

      var id = rows[0]
      var wishname = rows[1]
      var result = rows[2]

      var response = {
        ToonID: id,
        WishName: wishname,
        Result: result
      };
      res.send(JSON.stringify(response));
  });
});