【问题标题】:Can't get data by id using NodeJS and MySQL无法使用 NodeJS 和 MySQL 通过 id 获取数据
【发布时间】:2019-12-14 03:14:24
【问题描述】:

我是 NodeJs 的新手,我想通过 id 获取一些信息。这是我的代码
控制器:

router.get('/machine', function (req, res) {
  Machine.getmachine(req.body, function (err, row) {
    if (err) {
        res.status(400).json(err);
    }
    else {
        res.json(row);
    }
  });
});

SQL 部分:

getmachine: function (Machine, callback) {
   return db.query('SELECT * from machine WHERE id=?', [Machine.id], callback);
},

我尝试用 Postman 对其进行测试,结果只得到了{}。 请问,你能告诉我为什么我没有得到我想要的吗?

【问题讨论】:

  • 控制台有错误吗?如果是这样,您可以发布错误堆栈跟踪吗?
  • 我正在用邮递员测试它,不,它不会返回任何错误。
  • 检查下面的答案,您的req.body 可能是undefinednull,因为它是GET 请求。您应该使用path variablesquery paramsGET 请求传递ID。
  • 我使用了 req.query.id 并且我使用了 res.json(req.query.id);看看它是否会返回 id 并返回它但我想返回信息
  • @sohyun 你能贴出你的邮递员请求截图吗

标签: mysql node.js express postman


【解决方案1】:

尝试这样的方法,而不是读取正文数据,您应该将其读取为 query。否则,如果您作为 params 传递,您应该使用 req.params('id') 来获取 id。

 router.get('/machine', function (req, res) {
  Machine.getmachine(req.query.id, function (err, row) {
    if (err) {
        res.status(400).json(err);
    }
    else {
        res.json(row);
    }
  });
 });

编辑

根据您在评论中提供的网址,您可以尝试这样的事情。

 router.get('/machine:id', function (req, res) {
      Machine.getmachine(req.params.id, function (err, row) {
        if (err) {
            res.status(400).json(err);
        }
        else {
            res.json(row);
        }
      });
     });

如果您设法将 id 获取到后端,那么问题一定出在您的 sql 查询中。试试这样的

 getmachine: function (Id, callback) {
     return db.query('SELECT * from machine WHERE id=?', Id, callback);
 }

【讨论】:

  • query.id 给了我相同的结果,我尝试了 req.params 这给了我一个错误
  • @sohyun 你在使用 body-parser 吗?你能贴一张你的邮递员电话的图片吗?
  • 我无法发布图片 :( 但我使用了这个链接:localhost:3001/machines/machine?id=10
  • 我试过 return db.query('SELECT * from machine WHERE id=?', Machine.id, callback);我有一个错误然后我更换了?按数字,我得到了结果。这意味着我在控制器文件中使用的代码不发送 id 变量。但我不明白为什么
  • 终于成功了,非常感谢。你真的帮了我很多。
猜你喜欢
  • 2021-06-22
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多