我试图使用循环将一些数据插入到mysql数据库中。如您所见,我每周期打开/插入/关闭连接一次。但是,似乎我的代码在循环后不会重新打开我的数据库连接。
源代码:
var MySQLModule = require('mysql');
//var SleepModule = require('sleep');
var MySQL_Connection = MySQLModule.createConnection({host: '10.0.0.254', user: 'User', password: 'Password', database: 'Air_Pollution_Project'});
var i = 0;
while (i < 5) {
MySQL_Connection.connect();
//SleepModule.sleep(0);
MySQL_Connection.query('INSERT INTO Air_Pollution_Reading_Record (Station_ID, Air_Pollution_Reading_Value) VALUES (2, 666)');
MySQL_Connection.end();
i++
};结果:
events.js:183
throw er; // Unhandled 'error' event
^
Error: Cannot enqueue Handshake after invoking quit.我打开连接正确吗?我该怎么办呢。
发布于 2018-03-23 13:58:04
你不需要一直这样打开和关闭连接。我不确定这是否具体导致了您的问题,但您可以尝试将其移出循环之外。此外,将代码包装在try catch中可能会显示有关错误的更多信息。
var i = 0;
try {
MySQL_Connection.connect();
while (i < 5) {
MySQL_Connection.query('INSERT INTO Air_Pollution_Reading_Record (Station_ID, Air_Pollution_Reading_Value) VALUES (2, 666)');
i++
};
MySQL_Connection.end();
}catch(err){
console.log(err)
}发布于 2018-03-23 13:59:40
每次需要将数据大容量插入并在查询执行后关闭连接,而不是打开和关闭mysql端口。
可能重复:Link
有用的链接:How to insert bulk data into mysql using node js
MySQL_Connection.connect();
var sql = "INSERT INTO Air_Pollution_Reading_Record (Station_ID, Air_Pollution_Reading_Value) VALUES ?";
var values = [];
var i = 0;
while (i < 5) {
var newArray = [2,666];
values.push(newArray);
i++
};
MySQL_Connection.query(sql, [values], function(err) {
if (err) throw err;
MySQL_Connection.end();
});https://stackoverflow.com/questions/49451177
复制相似问题