NodeJS mysql未插入到表中

NodeJS mysql未插入到表中,mysql,node.js,Mysql,Node.js,我有一个数据库,其表名为responses,描述如下 +----------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+----------+------+-----+---------+-------+ | user | char(25) | YES | | NULL | |

我有一个数据库,其表名为
responses
,描述如下

 +----------+----------+------+-----+---------+-------+
 | Field    | Type     | Null | Key | Default | Extra |
 +----------+----------+------+-----+---------+-------+
 | user     | char(25) | YES  |     | NULL    |       |
 | response | text     | YES  |     | NULL    |       |
 +----------+----------+------+-----+---------+-------+
当我插入数据库时,如下所示:

connection.connect(function(err) {
 if (err) {
     console.error('error connecting: ' + err.stack);
     return;
 }
 console.log('connected as id ' + connection.threadId);
 var sql = "INSERT INTO responses (user, response) VALUES ('test_user', 'A')";
 connection.query(sql, function (err, result) {
     if (err) throw err;
     console.log("1 record inserted");
     connection.end();
 });
 });
它抛出了一个错误,错误是:调用quit后无法将查询排队


我在应用程序中很好地连接到数据库,但由于某些原因,此查询不起作用,有什么建议吗?

您不需要connect函数,因为如果未连接,调用查询将为您调用connect

将连接端置于功能外部

还请注意,在节点中,通常只有在应用程序关闭时才关闭连接。它可以提高性能,因为不需要重新连接每个新查询

var sql=“插入响应(用户,响应)值('test_user','A')”;
查询(sql,函数(错误,结果){
如果(错误)抛出错误;
控制台日志(“插入1条记录”);
});

连接。结束()您是否可以尝试只执行此部分而不使用connect part var sql=“INSERT INTO responses(user,response)值('test_user','A')”;查询(sql,函数(err,result){if(err)throw err;console.log(“插入1条记录”);connection.end();});你是说在功能之外吗@AmitNow当我运行此命令时,我得到了相同的错误
错误:调用quit后无法将查询排队。
。这可能是DB端权限问题吗?它可能来自应用程序中的其他位置吗?尝试删除连接。end();我尝试了另一个查询,但无论查询放在哪里,似乎都无法工作。解决了这个问题,我调用了底部的
connection.end()
,但没有意识到。