Использование GridFS-Stream для отправки файла изображения в Front-End React.js через Axios - Преобразование чанка в строку base64 - PullRequest
0 голосов
/ 05 октября 2019

Итак, я успешно загрузил свой файл изображения в мою MongoDB, используя Multer и Multer-Gridfs-Storage, но у меня возникают проблемы с его получением.

Когда я пытался извлечь данные с помощью GridFS-Stream, он возвращался, как этот предыдущий вопрос: GridFS: Как отобразить результат readstream.pipe (res) вtag?

Когда я использую этот код, то, что отправляется на мой Front-End, является только первым фрагментом в коллекции, но на самом деле его можно использовать.

const readstream = gfs.createReadStream({ filename: files[0].filename });

readstream.on('data', (chunk) => {
    res.send({ image: chunk.toString('base64') })              
})

Как мне вернуть все куски? Должен ли я сдаться и начать использовать GridFSBucket?

1 Ответ

0 голосов
/ 05 октября 2019

В итоге я попробовал это, и это сработало!

            let data = ''
            readstream.on('data', (chunk) => {
                data += chunk.toString('base64')
            })
            readstream.on('end', () => {
                res.send(data)
            })
...