调用退出错误后无法将Query排入队列

时间:2017-12-04 17:58:59

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

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

        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

后无法将Query排入队列

  

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

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

如何解决这个问题,将响应数据发送到我的表单上的同一个html页面进行前端解析?

1 个答案:

答案 0 :(得分:0)

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

这意味着您无法再使用此连接。

您应该每次都建立新的连接。