简体   繁体   中英

set an interval to refresh an api after x time

i have a node server that fetchs api from NASA apoc api i want the node server to make a request evrey 24 hours and get the latest JSON ive tried to set an interval via function and it didn't work

 import http from 'http'; import fetch from 'node-fetch'; import "./schema.mjs" import { lastSol } from './schema.mjs'; const hostname = 'localhost'; const port = 3001; const server = http.createServer(async (req, res) => { res.statusCode = 200; res.setHeader('Access-Control-Allow-Origin', '*'); // allow all domains to access the data res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET'); // allow get domains to access the data res.setHeader('Access-Control-Max-Age', 2592000); res.setHeader('Content-Type', 'application/json'); // set the content type to json let apiURL = 'https://api.nasa.gov/pl.netary/apod?api_key=XXXX'; const response = await fetch(apiURL); // fetching the data from the api const apod = await response.json(); function callApiEveryCSeconds(n) { setInterval(apod, n * 1000); } callApiEveryCSeconds(1); res.end(JSON.stringify(callApiEveryCSeconds)); // return JSON response }); console.log(lastSol()) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });

You would be better off running the API and creating a separate worker task that fetches data from the API and stores it on a time interval.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM