# Dlaczego warto wybrać Total.js dla aplikacji Node.js

> Co Total.js daje zespołowi Node.js: niezależny rdzeń, wszystko, czego potrzebuje aplikacja biznesowa w jednym ramie, wbudowana autentyczność i weryfikacja, szybka kurwa uczenia się i kompletne aplikacje open-source do rozpoczęcia.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: pl
Content-SHA256: f7b667ed953d60876c5cb1bbe71cdb8e4aa409f643637f5f852fc62d985f28fd
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Total.js 5 to kompletny framework aplikacyjny dla Node.js, dystrybuowany jako `total5`. Jeden pakiet daje zespołowi trasy HTTP, walidację wejścia, widoki renderowane na serwerze, uwierzytelnianie, uploady, trasy WebSocket, zaplanowane zadania, lokalizację, e-mail i więcej, wszystko zaprojektowane do współpracy. Budujesz aplikację zamiast wybierać, łączyć i utrzymywać tuzin osobnych bibliotek.

## Co dostaje Twój projekt

| Czego potrzebuje Twój projekt | Co daje Ci Total.js | Zobacz to w Forge |
|---|---|---|
| Wewnętrzna aplikacja biznesowa z formularzami, chronionymi trasami i uploadem plików | Natywne schematy wejścia, hooki uwierzytelniania i obsługa uploadów, gotowe do użycia | [Walidacja](/en/total5/validate-json-body/), [uwierzytelnianie](/en/total5/protect-routes-with-auth/), [uploady](/en/total5/file-upload/) |
| Dashboard z aktualizacjami na żywo i okresowymi raportami | Trasy WebSocket, zaplanowane zadania i e-mail w tym samym frameworku | [Przykład WebSocket](/en/total5/websocket-chat/), [zadania cron](/en/total5/cron-jobs/), [e-mail](/en/total5/send-email/) |
| Mały zespół, który chce dostarczać i utrzymywać jedną aplikację serwerową | Automatycznie ładowane pliki i wspólny zestaw konwencji, dzięki którym każdy projekt jest znajomy | [Struktura projektu](/en/docs/project-structure/), [konwencje](/en/docs/totaljs-agent-conventions/) |
| Aplikacja renderowana na serwerze | Widoki, layouty i lokalizacja w tym samym frameworku | [Widoki i layouty](/en/total5/views-and-layouts/), [lokalizacja](/en/total5/localization/) |

Każdy wiersz odsyła do przykładu, który Forge uruchamia. We frontendzie Total.js ma jComponent i [katalog setek gotowych komponentów](/en/components/), więc ten sam ekosystem obejmuje także interfejs; ich użycie jest opcjonalne.

## Dlaczego zespoły wybierają Total.js

Rdzeń bez zewnętrznych zależności. Zainstalowany pakiet `total5` nie deklaruje zależności firm trzecich w czasie działania. Nie ma łańcucha modułów napisanych przez różnych autorów, które trzeba utrzymywać w zgodności, porzuconego pakietu, który zatrzyma Twój build, ani niespodzianek z aktualizacji tranzytywnej. Taka ciągłość ma bezpośredni i silny wpływ na to, jak dobrze projekt się skaluje i jak łatwo go utrzymać przez lata: to, czego uczysz się i co wdrażasz dziś, nadal działa, wsparte przez jeden projekt.

Wbudowane API bezpieczeństwa. ramy obejmują autentyzację, podpisane sesje, sprawdzania CSRF, szyfrowanie hasła i weryfikacja wejściów akcji. [Wniosek referencyjny Taskboard](/en/docs/taskboard-reference/) Połączyć je w jednej aplikacji.

Szybka krzywa uczenia się. Total.js to JavaScript z konwencjami, które szybko się przyswaja, więc zespół, który go jeszcze nie zna, nie jest w gorszej sytuacji. Repozytoria Total.js zawierają dużą kolekcję skryptów, przykładów i kompletnych aplikacji na licencji MIT, które możesz czytać, używać ponownie i z których możesz się uczyć, a Forge dodaje uruchamiane przepisy na resztę.

Szybki i lekki. Total.js jest szybki, a jeden pakiet bez drzewa zależności utrzymuje go lekkim: mniej do ładowania, aktualizowania i audytu, co liczy się najbardziej na małych serwerach i małych urządzeniach. Forge mierzy go w kontrolowanych warunkach i publikuje opóźnienie, CPU i pamięć dla każdego obciążenia, wraz z surowymi danymi, w [benchmarkach](/en/benchmarks/).

## Zacznij prosto: bezpośrednia trasa HTTP

Ten wykonywalny przykład waliduje body kompaktowym natywnym schematem i odpowiada bezpośrednio z kontrolera: kilka linii i żadnych dodatkowych warstw. Gdy aplikacja rośnie, akcje domenowe dodają wielokrotnego użytku, zwalidowany kontrakt, który możesz wywoływać z tras, kodu i narzędzi.

```js controllers/contacts.js
var schema = NEWSCHEMA('ContactsInput', '*name:String');

exports.install = function() {
	ROUTE('GET /health/', health);
	ROUTE('POST /contacts/', create);
};

function health($) {
	$.json({ ok: true });
}

function create($) {
	var result = schema.transform($.body);
	if (result.error) {
		$.response.status = 400;
		$.json({ error: 'invalid' });
		return;
	}
	$.response.status = 201;
	$.json({ name: result.response.name });
}
```

## Źródła

Forge łączy swoje twierdzenia z rzeczami, które możesz uruchomić. [wytyczne Total.js](https://github.com/totaljs-es/guidelines) opisują styl kodowania ekosystemu, [Total.js AI Context](https://github.com/totaljs/aicontext) dostarcza wskazówek implementacyjnych, a [manifest źródeł](/ai-sources.json) zapisuje przejrzane rewizje. Jeśli przewodnik i zainstalowany framework kiedykolwiek się różnią, punktem odniesienia jest zainstalowany kod źródłowy.
