I have JSON data, which I got from my Firebird database. Now, I would like to create mysql connection and write the JSON data to MySql database on NodeJS. But when I am closing the Firebird connection and creating MySql connection and trying some query on it, it gives an error:
events.js:85 throw er; // Unhandled 'error' event ^ Error: Cannot enqueue Handshake after invoking quit. at Protocol._validateEnqueue (/Users/myuser/node_modules/mysql/lib/protocol/Protocol.js:196:16) at Protocol._enqueue (/Users/myuser/node_modules/mysql/lib/protocol/Protocol.js:129:13) at Protocol.handshake (/Users/myuser/node_modules/mysql/lib/protocol/Protocol.js:52:41) at Connection.connect (/Users/myuser/node_modules/mysql/lib/Connection.js:123:18) at Server. (/Users/myuser/Documents/project/convert_fdb_to_mysql.js:34:14) at Server.emit (events.js:110:17) at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:491:12) at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23) at Socket.socketOnData (_http_server.js:343:22) at Socket.emit (events.js:107:17)
I would like to fix this error and write my JSON to MySql database. Can you please let me know how can i solve my problem?
And any suggestions for transfer JSON data to MySql database?
Thanks,
This is my code for getting data from Firebird db:
var fb = require('firebird');
var util = require('util');
var http = require('http');
// mySQL connection
var mysql = require('mysql');
var connection = mysql.createConnection({
socketPath: '/tmp/mysql.sock',
host: 'localhost',
user: 'root',
password: '',
database: 'mysql_db'
});
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/plain'
});
// Firebird connection
var con = fb.createConnection();
con.connectSync('FIREBIRD.FDB', 'SYSDBA', 'masterkey', '');
var rs = con.querySync('SOME SQL Query');
var rows = rs.fetchSync("all", true);
con.disconnect(); // Firebird disconnect
connection.connect(); // mysql connect
connection.query('SOME SQL Query', function (err, rows, fields) {
if (err) throw err;
console.log(rows[0]);
});
connection.end(); // mysql disconnect
res.write('[');
rows.forEach(function (r) {
res.write(JSON.stringify(r) + ',');
});
res.end(']');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');