如何将multer memoryStorage对象转换为fs.createReadStream对象?

时间:2019-04-22 02:11:59

标签: node.js stream buffer fs multer

我试图使用一种API,该API接受由fs.createReadStream()函数创建的对象。当我尝试使用multer memoryStorage会在request.file中创建一个如下所示的对象时发生我的问题:

{ fieldname: 'file',
     originalname: 'logo.png',
     encoding: '7bit',
     mimetype: 'image/png',
     buffer:
      <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 07 62 00 00 05 89 08 06 00 00 00 ac 25 d7 6b 00 00 00 09 70 48 59 73 00 00 2e 23 00 00 2e 23 01 ... >,
     size: 96307 }

但是我需要的是看起来像这样的流:

ReadStream {
  _readableState:
   ReadableState {
     objectMode: false,
     highWaterMark: 65536,
     buffer: BufferList { head: null, tail: null, length: 0 },
     length: 0,
     pipes: null,
     pipesCount: 0,
     flowing: null,
     ended: false,
     endEmitted: false,
     reading: false,
     sync: true,
     needReadable: false,
     emittedReadable: false,
     readableListening: false,
     resumeScheduled: false,
     paused: true,
     emitClose: false,
     destroyed: false,
     defaultEncoding: 'utf8',
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  _events: [Object: null prototype] { end: [Function] },
  _eventsCount: 1,
  _maxListeners: undefined,
  path: '/Users/xxxxxxx/Desktop/logo.png',
  fd: null,
  flags: 'r',
  mode: 438,
  start: undefined,
  end: Infinity,
  autoClose: true,
  pos: undefined,
  bytesRead: 0,
  closed: false }

我已经尝试过将缓冲区作为参数传递给fs.createReadStream()和streamifier.createReadStream(),但是没有成功。

0 个答案:

没有答案