Как отправить данные в виде кусков с сервера (node.js) клиенту (реагировать. js)? - PullRequest
1 голос
/ 26 апреля 2020

В итоге у меня был сервер, предоставляющий картинки в формате base64. Проблема в том, что когда я хочу отправить массив изображений base64, они слишком велики.

Я хочу отправить массив маленькими порциями на внешний интерфейс. Я использую Sequelize для извлечения данных из базы данных.

Есть ли у кого-нибудь идея, как это сделать.

Вот так выглядит моя конечная точка до сих пор:

router.get('/download', async (req, res, next) => {

    try {
        const getAllStoneData = await StoneData.findAll();

        const convertBlobToString = getAllStoneData.map((oneStone) => {

            const getBuffer = oneStone.dataValues.blobImage;
            const convertToString = getBuffer.toString('utf8');
            const copyOneStone = {
                ...oneStone.dataValues,
                blobImage: convertToString,
            };

            return copyOneStone;
        });

        let chunk = [];
        while (convertBlobToString.length > 0) {
            chunk = convertBlobToString.splice(0, 1);

            res.write(chunk);

        }

        res.end();

    } catch (error) {
        res.status(400).send({ error });
    }
});

Когда я запускаю это, я получаю сообщение об ошибке

«UnhandledPromiseRejectionWarning: Ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту»

...