2012-01-28 3 views
7

Я использую модуль node-mysql узла Node.JS. Один столбец имеет тип BLOB и хочет прочитать его, и, если возможно, base64 закодирует его. Я не смог найти ничего о том, как это сделать.Node.JS чтение BLOB из mysql

Любые идеи?

ответ

15

Попробуйте следующий фрагмент кода:

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

Если капля двоичного кода, используйте следующую вместо:

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

Можно также упростить, что в одну строку:

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

Примечание: mysql-node автоматически преобразует объекты Blob в javascr ipt Буферные объекты.
В приведенном выше ответе указывается кодировка base64.

Для меня, самый простой способ, чтобы просто прочитать его как строку в узел был: myObject.myBlobAttr.toString('utf-8')


По состоянию на 28 января 2015 года,
От Феликса mysql-node page:

Литье под давлением

Для вашего удобства этот драйвер будет по умолчанию используют типы mysql для встроенных типов JavaScript. Существуют следующие отображения:

...

Buffer

TINYBLOB
MEDIUMBLOB
LONGBLOB
BLOB
BINARY
VARBINARY
BIT (последний байт будет заполнен 0 бит по необходимости)


Редактировать Альтернативный вариант для UTF-8 (?)

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

Смежные вопросы