Node.JS读取从MySQL的BLOB
我正在使用Node.JS node-mysql模块。 一列有一个BLOBtypes,并希望从中读取,如果可能的话base64对其进行编码。 我一直无法find如何做到这一点。
有任何想法吗?
尝试以下代码片段:
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');
值得注意的是: mysql-node自动将Blob对象转换为javascript的Buffer对象。
上面的答案解决了base64编码。
对我来说,最简单的方法就是将它作为节点中的string读取: myObject.myBlobAttr.toString('utf-8')
截至2015年1月28日,
从Felix的mysql-node页面 :
types铸造
为了方便起见,默认情况下,此驱动程序将把mysqltypes转换为原生JavaScripttypes。 存在以下映射:
…
缓冲
TINYBLOB
MEDIUMBLOB
LONGBLOB
BLOB
BINARY
VARBINARY
BIT(最后一个字节将根据需要填充0位)
编辑 UTF-8的备用选项(?)
String.fromCharCode.apply(null, new Uint16Array(myObject.myBlobAttr));
- Socket.io / Node.js:来自客户端的套接字连接上的“值超出范围”
- 如何在JavaScript / Node中计算SHA256散列和Base64string编码
- NodeJS base64图像编码/解码不太合适
- Sec-WebSocket-Accept值的Base64编码
- 如何在Javascript / Node中从Blob中编写.wav文件
- 用Express来渲染Base64 PNG
- 为BaseJS编码PGPencryption的二进制文件在base64中
- 如何将带有AJAX的base64图像发送或传输到Node.js Express服务器?
- 使用base64图像数据在NodeJS中进行image processing