我正在使用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));