Node.js nodejs函数后没有返回数据

Node.js nodejs函数后没有返回数据,node.js,Node.js,我对nodejs和expressjs很陌生。谁能确定我做得对吗。每次我通过web执行响应时,例如/names/status/1000036/都不会显示任何数据 代码: 它成功地连接到数据库,但返回一个简单的json{} 我正在使用ExpressJS,mysql节点模块 谢谢编辑:在我读完这个问题之前,前面的答案被愚蠢地贴了出来 您正在将id、wishname和result从行数组中未填充的位置中取出。您只想将响应设置为行[0] 不过,我仍在对数据库引擎进行假设。您应该指定您正在使用的数据库库以及

我对nodejs和expressjs很陌生。谁能确定我做得对吗。每次我通过web执行响应时,例如
/names/status/1000036/
都不会显示任何数据

代码:

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

我正在使用ExpressJS,mysql节点模块


谢谢编辑:在我读完这个问题之前,前面的答案被愚蠢地贴了出来

您正在将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));
  });
});

我认为
data.ToonID
选项值是错误的,它应该是一个数组:

connection.query('SELECT * FROM NameApproval WHERE ToonID = ?', [data.ToonID], function(err, rows, fields) {
使用
[data.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));
  });
});

你介意用一种对nodejs不熟悉的人可以理解的方式来解释这一点吗?因为你刚才说的话太让人困惑了。对不起我刚刚编辑了我在问题中使用的DB引擎。:)没问题。请参阅更新的答案,它现在应该可以用一个代码示例回答您的所有问题当使用您编辑的代码时,我得到一个
{}
空JSON字符串仍然得到
{}
:(您可以查看
数据。ToonID
是否获得了正确的id?是的,它正在获取id
1000036
,这是正确的IDI执行此操作。仍然返回空JSON字符串:
{}
您确定路由正确吗?似乎您响应了两次。
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));
  });
});