Menu
CoddyTech

Licznik z terminem ważności

Część sekcji Uwierzytelnianie i bezpieczeństwo ścieżki Node.js w Coddy. Lekcja 22 z 24.

Stałe okno zlicza próby od określonego czasu początkowego. Zapisz since obok licznika. Okno trwające jedną minutę wygasa, gdy now - since osiągnie 60000 milisekund.

// Dziesięciosekundowy przedział czasu w tym przykładzie
if (now - since >= 10000) {
    count = 0;
    since = now;
}
count += 1;

W trakcie trwania okna zachowuj jego pierwotny czas rozpoczęcia. Przesuwanie go po każdej próbie stale wydłużałoby czas oczekiwania. Ta praktyka przekazuje now, dzięki czemu możesz przetestować granicę bez czekania. Działający serwer pobiera aktualny czas z Date.now(). Projekt logowania używa tego samego rekordu { count, since }.

challenge icon

Wyzwanie

Łatwy

Zaktualizuj w exercise.js rejestr awarii z jednominutowym oknem. Jeśli now - since wynosi co najmniej 60000, rozpocznij nowe okno z wartością now i licznikiem równym 1. W przeciwnym razie zwiększ licznik i zachowaj wartość since. Zwróć oba pola.

Dla POST z użyciem {"count":3,"since":0,"now":10000} oczekiwany wynik to {"count":4,"since":0}. Przy now:60000 oczekiwany wynik to {"count":1,"since":60000}.

Początkowe GET /result używa podanego przykładu {"count": 2, "since": 1000, "now": 61000}. Użyj POST /result z treścią w formacie JSON, aby wypróbować inne dane wejściowe.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Uwierzytelnianie i bezpieczeństwo

Poćwicz samodzielnie: Edytor online Express