我想在node.js上将二进制数据响应给客户端。 但是write只能发送字符串或缓冲区。 如何将二进制文件发送到客户端。
dbconnect.selectBinary(conn,function(result)
{
//result is a binary from sql query.
response.write(result,"binary"); //I wanna write response a binary here
response.end();
}
答案 0 :(得分:0)
如果我的结果对象在数据库中有一个“logo”BLOB,我使用此代码转换为NodeJS术语:
result.logo = new Buffer( result.logo, 'binary' );
或者有时这段代码(有时对我有用......):
result.logo = new Buffer( result.logo, 'binary' ).toString('base64');
另外,请注意结果不是数组(带一个条目)。我的实际代码是这样的,直接从node-mysql调用回来:
result[0].logo = new Buffer( result[0].logo, 'binary' ).toString('base64');