如何将busboy文件流转换为nodejs上的二进制对象

时间:2014-09-02 20:30:20

标签: javascript node.js mongodb busboy

要求:处理图像文件上传。在这里,使用express和node.js.使用busboy包在文件中接收二进制数据。

我的问题是如何从文件接收二进制数据到本地变量以插入mongo db。

var binaryData = "";

var busboy = new Busboy({ headers: req.headers });
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
  console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
  file.pipe(/********want to receive binary data to binaryData************/); 
});

如何将二进制数据转换为binaryData变量?

接收文件内容以直接在mongodb(而不是gridfs)上写入的任何替代方法。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以管道到任何可写流,或者如果您想自己处理数据(出于缓冲目的或其他目的),您可以使用“数据”和“结束”事件或使用file.read()和'可读'手动从流中读取数据的事件。 file流中的数据通常是二进制文件,但您必须检查encoding和/或mimetype才能确定。