Menu
CoddyTech

Un contatore con scadenza

Fa parte della sezione Autenticazione e sicurezza del percorso Node.js di Coddy. Lezione 22 di 24.

Una finestra fissa conta i tentativi a partire da un orario iniziale. Memorizza since accanto al conteggio. Per una finestra di un minuto, scade quando now - since raggiunge 60000 millisecondi.

// Una finestra di dieci secondi in questo esempio
if (now - since >= 10000) {
    count = 0;
    since = now;
}
count += 1;

Durante la finestra, mantieni l'orario iniziale originale. Spostarlo dopo ogni tentativo continuerebbe a prolungare l'attesa. Questa pratica fornisce now così puoi verificare il limite senza aspettare. Un server in esecuzione ottiene l'ora corrente da Date.now(). Il progetto di accesso usa lo stesso record { count, since }.

challenge icon

Sfida

Facile

Aggiorna in exercise.js un registro degli errori di un minuto. Se now - since è almeno 60000, avvia una nuova finestra a now con count 1. Altrimenti, incrementa count e mantieni since. Restituisci entrambi i campi.

Con POST {"count":3,"since":0,"now":10000}: il risultato atteso è {"count":4,"since":0}. Con now:60000, il risultato atteso è {"count":1,"since":60000}.

La richiesta iniziale GET /result usa l'esempio fornito {"count": 2, "since": 1000, "now": 61000}. Usa POST /result con un corpo JSON per provare altri input.

Provalo tu

export function exercise({ count, since, now }) {
    return { count: count + 1, since };
}

Tutte le lezioni di Autenticazione e sicurezza

Esercitati da solo: Playground Express