如何在node.js上响应来自sql查询(如LONGBLOB类型)的二进制数据

时间:2014-02-13 18:23:09

标签: javascript mysql sql node.js

我想在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();
}

1 个答案:

答案 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');