node.js - nodejs如何将formdata数据(文件)存储为mongodb的blob数据

【字号: 日期:2022-09-13浏览:39作者:雯心

问题描述

前端通过formdata上传一个file文件后端框架为koa,用的是co-busboy中间件来解析请求,co-busboy文档中有简单例子可以通过解析得到一个“文件流” FileStream,然后通过node的fs模块将文件写入本地,这个倒是简单。

现在我的问题是想文件以blob形式入库,而不是存放在本地然后就在想 怎么从FileStream转,这个FileStream打印如下:

FileStream { _readableState: ReadableState { objectMode: false, highWaterMark: 16384, buffer: BufferList { head: [Object], tail: [Object], length: 1 }, length: 10256, pipes: null, pipesCount: 0, flowing: null, ended: false, endEmitted: false, reading: true, sync: false, needReadable: true, emittedReadable: false, readableListening: false, resumeScheduled: false, defaultEncoding: ’utf8’, ranOut: false, awaitDrain: 0, readingMore: false, decoder: null, encoding: null }, readable: true, domain: null, _events: { end: [Function] }, _eventsCount: 1, _maxListeners: undefined, truncated: false, _read: [Function], fieldname: ’homework’, filename: ’2017-1-18.json’, encoding: ’7bit’, transferEncoding: ’7bit’, mime: ’application/octet-stream’, mimeType: ’application/octet-stream’ }

当时看到一个为buffer的属性,还试过node中的Buffer模块,好像也不太行得通。

总之问题就是如何把 文件流 转换为 blob格式?还请大家指导一下

问题解答

回答1:

决定不把文件往数据库存了

回答2:

MongoDB没有blob格式,你需要的是GridFS。先看看驱动文档,里面有示例。如果有不懂的地方再讨论。https://mongodb.github.io/nod...

相关文章: