NodeJS mysql没有插入表中

时间:2017-12-29 18:20:51

标签: mysql node.js

我有一个数据库,其中包含一个名为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后无法将Query排入队列。

我在应用程序中连接到数据库正常,但由于某种原因,这个查询不起作用,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

将连接端放在函数外部。

另请注意,在NodeJ中,您通常仅在应用关闭时关闭连接。它增加了性能,因为不需要重新连接每个新查询

 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();