首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS无法打开MySQL连接端口

问NodeJS无法打开MySQL连接端口
EN

Stack Overflow用户
提问于 2018-03-23 13:50:14
回答 2查看 161关注 0票数 0

我试图使用循环将一些数据插入到mysql数据库中。如您所见,我每周期打开/插入/关闭连接一次。但是,似乎我的代码在循环后不会重新打开我的数据库连接。

源代码:

代码语言:javascript
复制
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++
};

结果:

代码语言:javascript
复制
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: Cannot enqueue Handshake after invoking quit.

我打开连接正确吗?我该怎么办呢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-23 13:58:04

你不需要一直这样打开和关闭连接。我不确定这是否具体导致了您的问题,但您可以尝试将其移出循环之外。此外,将代码包装在try catch中可能会显示有关错误的更多信息。

代码语言:javascript
复制
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)
}
票数 0
EN

Stack Overflow用户

发布于 2018-03-23 13:59:40

每次需要将数据大容量插入并在查询执行后关闭连接,而不是打开和关闭mysql端口。

可能重复:Link

有用的链接:How to insert bulk data into mysql using node js

代码语言:javascript
复制
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();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49451177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档