Как преобразовать многоцелевой объект memoryStorage в объект fs.createReadStream? - PullRequest
0 голосов
/ 22 апреля 2019

Я пытался использовать 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 (), но безуспешно.

...