# Proč zvolit Total.js pro aplikace Node.js

> Co Total.js poskytuje týmu Node.js: závislý jádro, vše, co podnikatelská aplikace potřebuje v jednom rámci, integrovaná ověřování a validace, rychlá kurva učení a kompletní open-source aplikace k zahájení.

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

Total.js 5 je kompletní aplikační framework pro Node.js distribuovaný jako `total5`. Jeden balíček dává týmu HTTP routy, validaci vstupu, views renderované na serveru, autentizaci, uploady, routy WebSocket, plánované úlohy, lokalizaci, e-mail a další, vše navržené tak, aby to fungovalo společně. Stavíte aplikaci místo vybírání, propojování a udržování tuctu samostatných knihoven.

## Co váš projekt získá

| Co váš projekt potřebuje | Co vám dává Total.js | Podívejte se na to ve Forge |
|---|---|---|
| Interní obchodní aplikace s formuláři, chráněnými routami a uploadem souborů | Nativní vstupní schémata, autentizační hooky a zpracování uploadů, připravené k použití | [Validace](/en/total5/validate-json-body/), [autentizace](/en/total5/protect-routes-with-auth/), [uploady](/en/total5/file-upload/) |
| Dashboard s živými aktualizacemi a periodickými reporty | Routy WebSocket, plánované úlohy a e-mail ve stejném frameworku | [Příklad WebSocket](/en/total5/websocket-chat/), [úlohy cron](/en/total5/cron-jobs/), [e-mail](/en/total5/send-email/) |
| Malý tým, který chce dodat a udržovat jednu serverovou aplikaci | Automaticky načítané soubory a společná sada konvencí, díky nimž je každý projekt povědomý | [Struktura projektu](/en/docs/project-structure/), [konvence](/en/docs/totaljs-agent-conventions/) |
| Aplikace renderovaná na serveru | Views, layouty a lokalizace v rámci stejného frameworku | [Views a layouty](/en/total5/views-and-layouts/), [lokalizace](/en/total5/localization/) |

Každý řádek odkazuje na příklad, který Forge spouští. Ve frontendu má Total.js jComponent a [katalog stovek hotových komponent](/en/components/), takže stejný ekosystém pokrývá i rozhraní; jejich použití je volitelné.

## Proč týmy volí Total.js

Jádro bez externích závislostí. Nainstalovaný balíček `total5` nedeklaruje žádné závislosti třetích stran za běhu. Neexistuje řetězec modulů od různých autorů, které je třeba udržovat kompatibilní, žádný opuštěný balíček, který zastaví váš build, žádné překvapení z tranzitivní aktualizace. Taková kontinuita má přímý a silný vliv na to, jak dobře se projekt škáluje a jak snadno se udržuje po léta: co se dnes naučíte a nasadíte, funguje dál, s podporou jednoho projektu.

Vestavěné bezpečnostní API. rámec zahrnuje ověření, podepsané sezení, kontroly CSRF, šifrování hesla a validace vstupu akce. [Referenční aplikace Taskboard](/en/docs/taskboard-reference/) Kombinujte je do jedné aplikace.

Rychlá křivka učení. Total.js je JavaScript s konvencemi, které se rychle osvojí, takže tým, který ho ještě nezná, není v nevýhodě. Repozitáře Total.js obsahují velkou sbírku skriptů, příkladů a kompletních aplikací pod licencí MIT, které můžete číst, znovu použít a učit se z nich, a Forge přidává spuštěné recepty na zbytek.

Rychlé a lehké. Total.js je rychlý a jeden balíček bez stromu závislostí jej udržuje lehkým: méně věcí k načtení, aktualizaci a auditu, což nejvíce záleží na malých serverech a malých zařízeních. Forge jej měří za kontrolovaných podmínek a publikuje latenci, CPU a paměť pro každou zátěž, se surovými daty, v [benchmarcích](/en/benchmarks/).

## Začněte jednoduše: přímá HTTP routa

Tento spustitelný příklad ověří tělo pomocí kompaktního nativního schématu a odpoví přímo z kontroleru: pár řádků a žádné další vrstvy. S růstem aplikace přidají doménové akce opakovaně použitelnou, ověřenou smlouvu, kterou můžete volat z rout, kódu a nástrojů.

```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 });
}
```

## Zdroje

Forge spojuje svá tvrzení s věcmi, které můžete spustit. [pokyny Total.js](https://github.com/totaljs-es/guidelines) popisují styl kódování ekosystému, [Total.js AI Context](https://github.com/totaljs/aicontext) poskytuje implementační pokyny a [manifest zdrojů](/ai-sources.json) zaznamenává zkontrolované revize. Pokud se příručka a nainstalovaný framework někdy liší, referencí je nainstalovaný zdrojový kód.
