Fetch is not fully working. working rollback code is in file rollback

This commit is contained in:
eetnaviation
2024-03-15 22:33:04 +02:00
parent 3286a0168d
commit 1787f42830
3 changed files with 207 additions and 42 deletions

49
main.js
View File

@ -12,9 +12,10 @@ const axios = require('axios');
const fs = require('node:fs');
var sleep = require('sleep');
console.log("init!");
console.log("Server initalize!");
app.get('/', (req, res) => {
console.log("Init root /");
//index.html
res.sendFile(__dirname + '/client/index.html');
});
@ -22,16 +23,27 @@ app.get('/', (req, res) => {
server.listen(serverPort, () => {
console.log("Apache server initalized...");
console.log('Server started on port', serverPort);
triggerDataFetch();
//triggerDataFetch();
});
async function triggerDataFetch() {
while (true) {
console.log("Fetching new data...");
await fetchData();
console.log("Data fetch completed. Wait 5 seconds before next fetch!");
await sleep.usleep(5000000);
}
io.on('connection', (socket) => {
console.log("Got connection from user! Waiting for taksearch...")
socket.on('takSearch', (tak) => {
console.log(triggerDataFetch(tak));
});
});
async function triggerDataFetch(tak) {
console.log("Fetching new data...");
const data = await fetchData();
const filteredData = data.filter(item => item.tak === tak);
io.emit('takSearch', filteredData);
console.log("Data fetch completed.");
// this part is only for when it is continuous
//console.log("Data fetch completed. Wait 5 seconds before next fetch!");
//await sleep.usleep(5000000);
// also add while true cycle
}
async function fetchData() {
@ -39,6 +51,7 @@ async function fetchData() {
const response = await axios.get(url);
if (response.status === 200) {
const lines = response.data.split('\n');
const result = [];
lines.forEach(line => {
if (line) {
const data = line.split(',');
@ -65,23 +78,27 @@ async function fetchData() {
transportTypeDecoded = "Unknown";
break;
}
console.log("Transport Type:", transportTypeDecoded);
console.log("Line Number:", lineNumber);
console.log("Latitude:", latitude);
console.log("Longitude:", longitude);
console.log("Decoded address:");
console.log("TAK:", tak);
console.log();
result.push({
transportType: transportTypeDecoded,
lineNumber,
longitude,
latitude,
tak
});
} catch (error) {
console.log("Invalid data format!", line);
}
}
}
});
return result;
} else {
console.log("Data fetch fail! Got status:", response.status);
return [];
}
} catch (error) {
console.error("Error fetching data:", error);
return [];
}
}