我正在尝试通过获取以 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/