2
我遷移一個網站,的Java/JSF爲節點/角,但我從Firebird數據庫使用節點火鳥的base64轉換斑點的問題。火鳥BLOB爲Base64 - Node.js的
connection.query(query,function(err,rows){
if(err) {
res.json({"Error" : true, "Message" : "Error executing query"});
} else {
var buffer;
var bufferBase64;
for(var i = 0; i < rows.length; i++){
rows[i].image(function(err, name, eventEmitter) {
eventEmitter.on('data', function(chunk) {
buffer = new Buffer(chunk, 'binary').toString('base64');
bufferBase64 += buffer;
});
eventEmitter.on('end', function() {
console.log(bufferBase64); // print base64
});
});
}
res.json(rows);
}
connection.detach();
});
來自node-firebird的這段代碼生成了一個無效的base64,但是這個工作使用了Java。
byte[] encoded = Base64.getEncoder().encode(rs.getBytes("image"));
System.out.println(new String(encoded));
This is a buffers of a image : [function] that returns from the database
我不清楚問題是什麼,屏幕截圖似乎是原始字節。如果我不得不猜測,你的問題是你需要將所有字節轉換爲一個base64字符串,而目前你正在單獨將base64編碼爲塊,並將其連接起來,這可能導致base64填充('='..)字符串,而不是僅在最後。那個,或者 - 我不知道node.js - 那個'toString'不會做你認爲它做的事情。 –
問題是,我是一個JavaScript /節點的初學者,我試圖學習,但是我在解決閱讀字節和轉換爲base64這部分時遇到了問題。 https://github.com/hgourvest/node-firebird#reading-blobs-asynchronous – Douglas
我只需要將java中的代碼轉換爲javascript並打印base64。我無法得到一個有效的base64 – Douglas