Отправка и получение большого объекта JSON в http - PullRequest
0 голосов
/ 28 июня 2018

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

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Я думаю, что 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);

Ref- Freecodecamp link

0 голосов
/ 28 июня 2018

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

...