首页 > 解决方案 > Express 后端在 MySQL 查询中给出空结果

问题描述

我有一个从 MySQL 后端检索数据的应用程序。我的其他 get 函数成功地查询了 MySQL 数据库,但下面的函数没有,即使当我在 MySQL 工作台中测试它时查询有效。

router.get('/duedates', function(req, res, next) {
  con.query("SELECT * FROM due_dates", function(err, result) {
    if(err) {
      console.log("Error")
      throw err;
    }
    console.log("Here")
    res.json(JSON.stringify(result))
  });
})

不明白为什么,这个和我其他的函数基本一样,due_dates是一个有效的数据表。在浏览器中,我只得到一个空结果“[]”

我该如何解决?

编辑:这是一个工作功能。出于某种原因,即使其他功能运行良好,我也无法从上述功能发送任何响应。

router.get('/:day', function(req, res, next) {

  monthToNum = {Aug : '08', Sep: '09'}
  year = req.params.day.toString().split(' ')[3]
  month = monthToNum[req.params.day.toString().split(' ')[1]]
  day = req.params.day.toString().split(' ')[2]

  //let date = req.body.date.toString().substring(0, 10);

  let date = year + '-' + month + '-' + day;

  con.query("SELECT * FROM schedule WHERE date = ?", [date], function(err, result) {
    if(err) throw err;
    var answer = result;
    res.json(JSON.stringify(result))
  });
})

这是我发送获取请求的方式

fetch('http://localhost:5000/backend/duedates', {method: "GET", headers: {'Accept' : 'application/json', 'Content-Type' : 'application/json'}}).then(res => res.text()).then(resjson => {
      //this.setState({mark: resjson})
      console.log(resjson)
    }).catch(err => console.log(err))

我尝试了默认的获取请求,但没有指定方法/获取,但这也不起作用。此外,我确认我正在获取正确的位置

标签: mysqlnode.jsexpressfetch

解决方案


推荐阅读