javascript - 调用退出错误后无法将查询排入队列

标签 javascript mysql node.js routes amazon-rds

我正在尝试通过获取以 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 列表,但随后会出现错误

Cannot enqueue Query after invoking quit

Cannot enqueue Quit after invoking quit.

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

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

最佳答案

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

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

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

关于javascript - 调用退出错误后无法将查询排入队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639274/

相关文章:

mysql - 使用 ColdFusion 和 MySQL 插入后获取表 ID

php - WordPress 最近帖子的 MySql 查询需要链接到各个帖子

mysql - 通过对机器的物理访问获得对 mysql 的访问权限

javascript 对象未更新以增加值

javascript - 使用 jquery ajax 和 php 将文件发送到客户端

javascript - 无法从 onclick 事件调用 JS 函数

javascript - 如何在nodejs中重复执行

javascript - 在元素的模糊处理程序运行之前模糊元素及其父元素?

javascript - Kraken.js 404 和 500 中间件模板

javascript - 如何使用 Firebase Cloud Functions Storage 创建文件夹