gpt4 book ai didi

javascript - 创建一个 JS 服务器,用于归档一周前的数据

转载 作者:数据小太阳 更新时间:2023-10-29 05:35:19 25 4
gpt4 key购买 nike

<分区>

我需要创建一个函数来显示一周前在一天中的不同时间从外部来源提取的指标。我目前设置服务器的方式是使用一种方法,该方法在早上 6 点到下午 5 点之间从外部来源提取指标。早上 6 点的函数如下所示:

//get metric at 6 am
var millisTill6 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 6, 0, 0, 0) - now;
if (millisTill6 < 0) {
millisTill6 += 86400000; // try again tomorrow
}
setTimeout(function() {
//get metric
}, millisTill6);

我编写了另外 11 种与上述方法类似的方法,用于在上午 7 点到下午 5 点期间跟踪所有这些时间的指标。

我现在想做的是存储和归档我每天收集的数据,这样我就可以引用当天前一周的每日数据(例如,如果今天是星期一,访问上周一记录的数据)。我最初的想法是创建另一个名为 millisTillMidnight 的方法,该方法每天将这些数据转换为不同的数组,但我一直无法使该方法起作用。理想情况下,我需要能够在我的应用程序中显示一周前一周的指标每小时数据。

编辑:

一直在研究这个问题,但仍然没有弄清楚如何让它工作。我省略了服务器 URL 和获取指标的方法,以使这个问题更笼统。这是我一直在使用的代码:

var http    = require('http');
var request = require('request');

var server = http.createServer(onRequest);
var port = Number(process.env.PORT || 3000)

server.listen(port);

var stat_a = [9, 9]; //display array


var tmp_stat_a = [0, 0]; //Holds the metric data for the day

var m_stat_a = [1, 1]; //monday archive
var t_stat_a = [2, 2]; //tuesday archive
var w_stat_a = [3, 3]; //wednesday archive
var th_stat_a = [4, 4]; //thursday archive
var f_stat_a = [5, 5]; //friday archive
var sa_stat_a = [6, 6]; //saturday archive
var s_stat_a = [7, 7]; //sunday archive


//----------------------------------------------------
function onRequest(req, res){

var Url = //URL

request(Url, function (error, response, body) {

var data = error;
var status = 404;

if(!error){

var now = new Date();


var millisTill6 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 6, 0, 0, 0) - now;//6 AM
if (millisTill6 < 0) {
millisTill6 += 86400000;
}
setTimeout(function(){
tmp_stat_a[0] = //get metric

}, millisTill6);

var millisTill7 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 7, 0, 0, 0) - now; //7 AM
if (millisTill7 < 0) {
millisTill7 += 86400000;
}
setTimeout(function(){
tmp_stat_a[1] = //get metric

}, millisTill7);


var millisTillMidnight = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 58, 0, 0) - now; //archive temp array and display data for next day at midnight
if (millisTillMidnight < 0) {
millisTillMidnight += 86400000;
}
setTimeout(function(){

var d = new Date();
var n = d.getDay();

if(n == 0) //SUNDAY
{
for(i=0; i<2; i++)
{
s_stat_a[i] = tmp_stat_a[i]; //archive temp array

stat_a[i] = m_stat_a[i]; //set display array to last weeks archive for the next day
}
console.log("0");
}


else if(n == 1) //MONDAY
{
for(i=0; i<2; i++)
{
m_stat_a[i] = tmp_stat_a[i];

stat_a[i] = t_stat_a[i];
}
console.log("1");
}
else if(n == 2) //TUESDAY
{
for(i=0; i<2; i++)
{
t_stat_a[i] = tmp_stat_a[i];

stat_a[i] = w_stat_a[i];
}
console.log("2");
}
else if(n == 3) //WEDNESDAY
{
for(i=0; i<2; i++)
{
w_stat_a[i] = tmp_stat_a[i];

stat_a[i] = th_stat_a[i];
}
console.log("3");
}
else if(n == 4) //THURSDAY
{
for(i=0; i<2; i++)
{
th_stat_a[i] = tmp_stat_a[i];

stat_a[i] = f_stat_a[i];
}
console.log("4");
}
else if(n == 5) //FRIDAY
{
for(i=0; i<2; i++)
{
f_stat_a[i] = tmp_stat_a[i];

stat_a[i] = sa_stat_a[i];
}
console.log("5");
}
else if(n == 6) //SATURDAY
{
for(i=0; i<2; i++)
{
sa_stat_a[i] = tmp_stat_a[i];

stat_a[i] = s_stat_a[i];
}
console.log("6");
}


}, millisTillMidnight);

status = 200;
data = {
aa: stat_a[0],
ab: stat_a[1]

};
}

res.writeHead(status, { 'Content-Type': 'application/json', "Access-Control-Allow-Origin":"*" });
res.write(JSON.stringify(data));
res.end();
});
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com