我正在使用Node.JS node-mysql模块。一列有一个BLOB类型并想从中读取,如果可能的话,base64对它进行编码。我一直无法找到如何做到这一点。Node.JS从mysql读取BLOB
任何想法?
我正在使用Node.JS node-mysql模块。一列有一个BLOB类型并想从中读取,如果可能的话,base64对它进行编码。我一直无法找到如何做到这一点。Node.JS从mysql读取BLOB
任何想法?
尝试下面的代码片段:
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');
值得注意的是:mysql-node自动将Blob对象转换成javascr ipt缓冲区对象。
上面的答案解决了base64编码问题。
对我来说,刚读它作为节点串最简单的方法是: myObject.myBlobAttr.toString('utf-8')
作为2015年1月28日的,
从Felix的mysql-node page:
类型铸造
为了您的方便,此驱动程序将默认情况下将mysql类型转换为原生JavaScript类型。下面的映射存在:
...
缓冲
TINYBLOB
MEDIUMBLOB
LONGBLOB
BLOB
BINARY
VARBINARY
位(最后一个字节将充满0位)
编辑 对于UTF-8替代选项(?)
String.fromCharCode.apply(null, new Uint16Array(myObject.myBlobAttr));