【问题标题】:Cannot enqueue Query after invoking quit error调用退出错误后无法将查询入队
【发布时间】:2018-05-18 06:25:05
【问题描述】:

我试图通过获取我在 html 表单中提交的值来查询我的 AWS RDS 数据库,以传递给后端并在 SQL 语句中使用它。这是我的表格:

        Show all 
        <form method="GET" action="/all">
          <select name="all">
            <option value="crimes">Crimes</option>
            <option value="schools">Schools</option>
            <option value="walkscore">Walkscore</option>
          </select>
            data
          <input type="submit" value="GO!">
        </form>

这是我的 JS 代码:

app.get('/all',function(req,res){
    var table = req.query['all'];
    connection.query('SELECT * from ' + table, function(err, rows, fields) {
        if(err) {
          console.log(err);
          res.send(500);
        }    
        console.log('The solution is: ', rows);
        connection.end();
        res.send(rows);
    }); 
});

当我这样做时,它会在很长一段时间后在我的控制台中打印一个 RowDataPackets 列表,但随后会出现错误

调用退出后无法将查询入队

调用 quit 后无法将 Quit 加入队列。

显然它正在连接到数据库,因为我正在获取行。但是,它挂在我的浏览器中并给出内部服务器错误。

如何解决此问题以将响应数据发送到我的表单用于前端解析的同一个 html 页面?

【问题讨论】:

  • 读取错误。你需要一个新的连接。

标签: javascript mysql node.js routes amazon-rds


【解决方案1】:

您在路由处理程序中end()ing 连接。

这意味着你不能再使用连接了。

你应该每次都建立一个新的连接。

【讨论】:

  • 即使我摆脱了那条线,它仍然挂在我的浏览器中。我只提交过一次这个表格。如何“每次”都建立新连接?
  • 通过在处理程序中建立新连接
猜你喜欢
  • 2017-06-19
  • 2020-03-10
  • 2012-12-29
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 2021-12-13
相关资源
最近更新 更多