使用NodeJS和MySQL无法通过ID获取数据

时间:2019-08-06 14:20:44

标签: mysql node.js express postman

我是NodeJ的新手,我想通过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进行测试,结果只有{}。 拜托,你能告诉我为什么我没有得到想要的东西吗?

1 个答案:

答案 0 :(得分:2)

尝试类似这样的方法,而不是读取正文数据,而应将其读取为 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);
 }