2012-01-28 92 views
7

Estoy usando el módulo Node.JS node-mysql. Una columna tiene un tipo BLOB y quiere leer de ella y, si es posible, la codifica en base64. No he podido encontrar nada sobre cómo hacer esto.Node.JS leyendo BLOB de mysql

¿Alguna idea?

Respuesta

15

Prueba el siguiente fragmento:

var buffer = new Buffer(blob); 
var bufferBase64 = buffer.toString('base64'); 

Si su burbuja es binario, utilice el siguiente lugar:

var buffer = new Buffer(blob, 'binary'); 
var bufferBase64 = buffer.toString('base64'); 

También puede simplificar eso a una línea:

var bufferBase64 = new Buffer(blob, 'binary').toString('base64'); 
9

Nota: mysql-node convierte automáticamente objetos Blob en javascr ipt objetos Buffer.
La respuesta anterior aborda la codificación base64.

Para mí, la forma más sencilla acaba de leer como una cadena en el nodo era: myObject.myBlobAttr.toString('utf-8')


Al 28 de Ene de 2015,
de Felix de mysql-node page:

Tipo fundición

Para su comodidad, este controlador se arrojar tipos de mysql en tipos nativos de JavaScript de forma predeterminada. Existen las siguientes asignaciones:

...

Buffer

TINYBLOB
MEDIUMBLOB
LONGBLOB
BLOB
BINARIO
VARBINARY
BIT (último byte se llenará con 0 bits según sea necesario)


Editar opción alternativa para UTF-8 (?)

String.fromCharCode.apply(null, new Uint16Array(myObject.myBlobAttr));