2017-12-06 3 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) 
    }) 

    }) 
} 

Ich habe dies aus einem Blob-Feld auswählen Ich weiß nicht, was ich falsch mache, dass das Feedback, das ich bekomme, eine Funktion ist. Im console.log Ich habe ich folgendes:Wählen Blob eine Funktion

undefined [Function] 

Was mache ich falsch, und wie zu lösen. Ich möchte als eine Rückkehr um ein Bild erhalten, die ich base64 als String umgewandelt gespeichert haben, es so ist in meiner Bank: data saved in the bank

+0

ich node.js weiß es nicht, aber vielleicht diese Frage (die Firebird, node.js und Blobs beinhaltet auch) können help you: https://stackoverflow.com/questions/46574826/firebird-blob-to-base64-node-js –

+0

Und vorausgesetzt, Sie verwenden node-firebird, schauen Sie auch auf https://github.com/hgourvest/node -firebird/(speziell unter [_ "READING BLOB S (ASYNCHRONOUS) "_] (https://github.com/hgourvest/node-firebird/#reading-blobs-asynchronous)) –

+0

Ich änderte die Funktion der Frage, die Sie ein wenig erwähnt haben, und ich habe es, ich danke Ihnen sehr viel –

Antwort

1

Lösung: Da meine wählen kehrt immer nur einen String Ich brauche nicht für und als in der Datenbank speichert sie einen String in base64 brauche ich nur diese Zeichenfolge toString mit()

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) 
    }); 
}); 
Verwandte Themen