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