Рекурсивно отправить GET запрос. Node JS

261
18 января 2018, 22:37

Отправляю GET запрос, получаю данные. Эти данные все время обновляются ( спустя пару минут ). Нужно при первом GET запросе получить данные с нескольких следующих страниц. Пример для более правильного объяснения ( скриншот - данные в формате json, прошу обратить внимание на next_page:

После каждого получения данных я сохраняю их в свою БД. По сути, мне необходимо сделать синхронизацию с центральной базой данных. Подскажите, реально ли такое реализовать? Я так понимаю, что необходимо рекурсивно слать запрос до момента, пока next_page не будет. После этого подождать какое-то время ( setInterval ) и снова отправлять запросы на изменение данных в ЦБД.

На данный момент мой get request имеет такой вид ( код сохранения в БД добавлять пока не буду ).

let url = `http://publiement.org/api/2.4/trs?offset=${new Date().toISOString()}+02.00`;
function getData() {
  request(url, { json: true }, (err, res, body) => {
    if (err) {
      return console.log(err);
    }
    url = `http://publicurent.org/api/2.4/ts?offset=${body.next_item}`;
    saveDataToDb(body);
  });
}

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

Answer 1

Попробуй так

function updateData(url) { 
  return request(url, { json: true }, (error, response, body) => { 
    if (error) { 
      throw error; 
    } 
 
    saveDataToDb(body); 
    console.log(`Send data to save`); 
 
    if (body.next_page) { 
      updateData(body.next_page.uri); 
      console.log(`I requested the next page`); 
    } else { 
      console.log(`I done`); 
    } 
  }); 
} 
 
updateData(uri);

READ ALSO
Передача данных из jsp в js

Передача данных из jsp в js

Как с помощью JSON передать параметр (например map) из страницы jsp в js и затем вернуть рассчитанные данные?

240
JavaScript Telegram API

JavaScript Telegram API

Нужна помощь с Telegram API, не могу найти нужную библиотеку для разработки на JavaScriptНаходил 3 варианта, но не смог разобраться в них

263
Как в SVG найти область обрамляемую путями

Как в SVG найти область обрамляемую путями

В SVG файле есть несколько путей path

280
Работа с DOM во vue?

Работа с DOM во vue?

Допустим у меня есть 4 компонента - main, header, first, second header - это плавающий navbar в котором при скороле переключаются активные ссылки на компонент...

221