Отправка и получение большого объекта JSON в http

У меня есть такая конфигурация, что.

Сервер клиентских приложений, работающий на Nodejs с expressjs. Сервер API работает на Nodejs с expressJs, и я использую базу данных postgresql.

Когда мой клиент запросил данные с сервера API, сервер API выдает ошибку

"*Error is  RangeError: Invalid string length*". 

Я предполагаю, что причина в том, что API пытается ответить клиенту чрезвычайно большим массивом объектов Json, которые он извлекает из базы данных.

Теперь мой вопрос: как я могу отправить такой чрезвычайно большой объект Json в ответ http? И если отправлено успешно, как я могу справиться с этим на стороне клиента?

Я наткнулся на модуль JSONStream. Но я не смог найти хороший пример, который мог бы выбрать инструмент в моем сценарии.

2 ответа

Я думаю, что BodyParser поможет..

var bodyParser = require('body-parser');

 app.use(bodyParser.urlencoded({
    parameterLimit: 100000,
    limit: '50mb',
    extended: true
  }));

Это увеличит размер json по сравнению с http запросами и ответами

Вы также можете проверить:-

const fs = require('fs');
const server = require('http').createServer();

server.on('request', (req, res) => {
  const src = fs.createReadStream('./big.file');
  src.pipe(res);
});

server.listen(8000);

Ссылка - Freecodecamp ссылка

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

Другие вопросы по тегам