обновить сайт асинхронно с использованием REST API - PullRequest
0 голосов
/ 01 марта 2019

Я хочу создать сайт, который будет получать данные из API REST и использовать его для асинхронного обновления моего сайта каждые 10 секунд.Как я могу это сделать?Я хочу знать способы для Nodejs или python.

В nodejs я наткнулся на socket.io, но мне нужно создать отдельный файл для запуска сервера и прослушивания его и клиента, которые подключаются ксервер, и он получит обновления.Но это оптимизированное решение этой проблемы.

var express = require('express');
var router = express.Router();
var Request = require("request");

var data = "";
Request.get("https://api.thingspeak.com/channels/709694/feeds.json?api_key=MY_API_KEY&results=1",(error,response,body)=>{
    if(error){
      return console.dir(error);
    }
    data = JSON.parse(body);
});
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Patient Monitoring & Diagnostics',data:data});
});

module.exports = router;

Код выше - это код Nodejs.Я хочу запускать Request.get() каждые 10 секунд и обновлять веб-страницу, не обновляя ее.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Ниже приведено решение проблемы.Спасибо @ koo

  const apiRequest = () => {
    const url = 'https://api.thingspeak.com/channels/709694/feeds.json?api_key=MY_API_KEY&results=1'; 

    $.ajax({url:url,success:function(result){
        let field1 = result.feeds[0].field1;
        $(".div1 p").text(field1);

    }});
}

setInterval(apiRequest, 10000);
0 голосов
/ 01 марта 2019

Вы можете использовать setInterval

Обернуть ваш Request.get функцией и вызывать его каждые 10 секунд.

const apiRequest = () => {
    Request.get("https://api.thingspeak.com/channels/709694/feeds.json?api_key=MY_API_KEY&results=1",(error,response,body)=>{
    if(error){
      return console.dir(error);
    }
    data = JSON.parse(body);
    });
}

setTimeout(apiRequest, 10000);

И если у вас нет точной причины для использования nodejs Request,

Учитывая клиентский API-запрос с axios, и state изменение с react также будет хорошим вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...