前端通过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格式?
还请大家指导一下
决定不把文件往数据库存了
MongoDB没有
blob
格式,你需要的是GridFS
。先看看驱动文档,里面有示例。如果有不懂的地方再讨论。https://mongodb.github.io/nod...