Node.JS从mysql读取BLOB

时间:2012-01-28 01:57:40

标签: mysql node.js base64 blob

我正在使用Node.JS node-mysql模块。一列有BLOB类型,想要从中读取,如果可能,base64对其进行编码。我无法找到任何关于如何做到的事情。

有什么想法吗?

2 个答案:

答案 0 :(得分:17)

请尝试以下代码段:

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

如果您的blob是二进制文件,请改用以下代码:

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

您也可以将其简化为一行:

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

答案 1 :(得分:15)

值得注意的是: mysql-node自动将Blob对象转换为javascript Buffer对象。
上述答案解决了base64编码问题。

对我来说,在节点中将其作为字符串读取的最简单方法是: myObject.myBlobAttr.toString('utf-8')


截至2015年1月28日,
来自Felix的mysql-node page

输入

为方便起见,默认情况下,此驱动程序会将mysql类型转换为本机JavaScript类型。存在以下映射:

...

<强>缓冲器

TINYBLOB
MEDIUMBLOB
LONGBLOB
BLOB
BINARY
VARBINARY
BIT(最后一个字节将根据需要填充0位)


修改 UTF-8的备用选项(?)

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