在MongoDB中上传文件

时间:2016-02-22 06:25:55

标签: node.js mongodb express multer

在MongoDB中上传文件的最佳做法是什么?我最近来到了Multer。它易于使用,但它上传文件系统中的文件,而不是直接上传到MongoDB。

1 个答案:

答案 0 :(得分:1)

Multer是Busboy的高级包装器,不幸的是,除非您正在为Stream编写StorageEngine,否则不会使用gridfs-stream进行回调。您希望流如此糟糕的原因是因为否则您必须在节点进程的内存中缓冲整个文件,然后才能对其执行任何操作。流更高效,允许您在某个地方流式传输数据,同时接收它,只在内存中缓冲,以防您无法以相同的速率将数据传输到您接收的位置。

将自定义StorageEnginehttps://github.com/ISMAELMARTINEZ/gridfs-storage-engine结合使用,可以在收到数据时实时将数据写入GridFS(例如,用户仍在上传)。

我为Multer找到了两个GridFS存储引擎:
https://github.com/arjandepooter/multer-gridfs
https://github.com/angular/angular/issues/6595
后者似乎没有任何文档,但只是通过源查看它仍然很容易使用。