2017-12-06 13 views
1
exports.carregaContrato = function(id, cb){ 
    Firebird.attach(firebirdConfig, function (err, db) { 
    if (err) 
     throw err; 

    db.query("select contrato_escaniado as IMAGE from cad_prospectos_contratos where codigo = ?", [id], function(err, result){ 
     console.log(err, result[0].IMAGE) 
     db.detach(); 
     cb(result) 
    }) 

    }) 
} 

BLOB 필드에서이 항목을 선택했습니다. 내가 얻는 피드백이 함수라는 것을 잘못 알고 있습니다. console.log에서 다음을 얻었습니다.Select BLOB 함수를 반환하십시오.

undefined [Function] 

내가 잘못하고있는 것과 해결하는 방법. 문자열로 base64로 변환하여 저장 한 이미지를 반환하고자합니다.

+0

를 사용하여이 문자열이 필요하지만, 어쩌면 (또한 파이어 버드, Node.js를하고 모양을 포함)이 질문 할 수있는 base64로 문자열을 저장 도와주세요 : https://stackoverflow.com/questions/46574826/firebird-blob-to-base64-node-js –

+0

그리고 node-firebird를 사용한다고 가정 할 때 https://github.com/hgourvest/node도보십시오. -firebird/(특히 [_ "READING BLOB S (ASYNCHRONOUS) "_] (https://github.com/hgourvest/node-firebird/#reading-blobs-asynchronous)) –

+0

당신이 언급 한 질문의 기능을 약간 수정했는데, 고맙습니다. 많이 –

답변

1

해결책 : 내 선택에서 항상 필요없는 문자열 만 반환하므로 데이터베이스에 난 그냥 내가 Node.js를 모르는 toString()

result[0].IMAGE(function(err, name, eventEmitter) { 
    var buffers = []; 
    eventEmitter.on('data', function(chunk) { 
    buffers.push(chunk); 
    }); 
    eventEmitter.once('end', function() { 
    var buffer = Buffer.concat(buffers); 
    retorno = (buffer.toString()); 
    db.detach(); 
    cb(retorno) 
    }); 
});