2015-09-17 180 views
-1

我有我的Firebird數據庫中的JSON數據。現在,我想創建mysql連接並將JSON數據寫入NodeJS上的MySql數據庫。但是,當我關閉火鳥連接和創建MySQL連接並在其上嘗試一些查詢,它給出了一個錯誤:如何在NodeJS上將JSON數據寫入MySql數據庫?

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)

我想解決這個錯誤,寫我的JSON MySQL數據庫。 您能否讓我知道我該如何解決我的問題?

有關將JSON數據傳輸到MySql數據庫的建議嗎?

感謝,

這是我從火鳥數據庫獲取數據代碼:

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/'); 
+0

爽,一個HTTP請求處理程序的內部同步動作。固體。 –

+0

錯誤消息的這一部分:'未處理'錯誤'事件'表明存在錯誤處理程序丟失。添加所述錯誤處理程序會給你一個錯誤消息,你可以採取行動 –

+0

錯誤的第二部分表明你正在結束一些還沒有完成的事情,比如mysql查詢。 –

回答