簡體   English   中英

Firebird blob 到 Base64 - Node.js

[英]Firebird blob to Base64 - Node.js

我正在使用用於Node/Angular 的java/jsf遷移一個網站,但是我遇到了使用 node-firebird 將 blob 從 firebird 數據庫轉換為 base64 的問題。

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));

這是圖像的緩沖區從數據庫返回的[函數]

感謝Mark rotteveel解決了我的問題。

如果有其他人遇到同樣的問題,請在解決方案下方。

         rows[i].image(function(err, name, eventEmitter) {
            let buffers = [];
            eventEmitter.on('data', function(chunk) {
               buffers.push(chunk);
            });
            eventEmitter.once('end', function() {
            let buffer = Buffer.concat(buffers);
            console.log(buffer.toString('base64')); // print base64
            });
          });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM