# Prečo zvoliť Total.js pre aplikáciu Node.js

> Čo dáva Total.js tímu Node.js: jadro bez závislosti, všetko, čo podniková aplikácia potrebuje v jednom rámci, vstavaná autentifikácia a validácia, rýchla krivka učenia a kompletné aplikácie s otvoreným zdrojovým kódom.

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

Total.js 5 je kompletný aplikačný framework pre Node.js distribuovaný ako `total5`. Jeden balík poskytuje tímu HTTP routy, validáciu vstupu, views renderované na serveri, autentifikáciu, uploady, routy WebSocket, plánované úlohy, lokalizáciu, e-mail a ďalšie, všetko navrhnuté tak, aby to fungovalo spolu. Stavíte aplikáciu namiesto vyberania, prepájania a udržiavania desiatok samostatných knižníc.

## Čo váš projekt získa

| Čo váš projekt potrebuje | Čo vám dáva Total.js | Pozrite si to vo Forge |
|---|---|---|
| Interná obchodná aplikácia s formulármi, chránenými routami a uploadom súborov | Natívne vstupné schémy, autentifikačné hooky a spracovanie uploadov, pripravené na použitie | [Validácia](/en/total5/validate-json-body/), [autentifikácia](/en/total5/protect-routes-with-auth/), [uploady](/en/total5/file-upload/) |
| Dashboard s živými aktualizáciami a periodickými reportmi | Routy WebSocket, plánované úlohy a e-mail v tom istom frameworku | [Príklad WebSocket](/en/total5/websocket-chat/), [úlohy cron](/en/total5/cron-jobs/), [e-mail](/en/total5/send-email/) |
| Malý tím, ktorý chce dodať a udržiavať jednu serverovú aplikáciu | Automaticky načítané súbory a spoločná sada konvencií, vďaka ktorým je každý projekt povedomý | [Štruktúra projektu](/en/docs/project-structure/), [konvencie](/en/docs/totaljs-agent-conventions/) |
| Aplikácia renderovaná na serveri | Views, layouty a lokalizácia v rámci toho istého frameworku | [Views a layouty](/en/total5/views-and-layouts/), [lokalizácia](/en/total5/localization/) |

Každý riadok odkazuje na príklad, ktorý Forge spúšťa. Vo frontende má Total.js jComponent a [katalóg stoviek hotových komponentov](/en/components/), takže ten istý ekosystém pokrýva aj rozhranie; ich použitie je voliteľné.

## Prečo tímy volia Total.js

Jadro bez externých závislostí. Nainštalovaný balík `total5` nedeklaruje žiadne závislosti tretích strán za behu. Neexistuje reťazec modulov od rôznych autorov, ktoré treba udržiavať kompatibilné, žiadny opustený balík, ktorý zastaví váš build, žiadne prekvapenie z tranzitívnej aktualizácie. Takáto kontinuita má priamy a silný vplyv na to, ako dobre sa projekt škáluje a ako ľahko sa udržiava roky: čo sa dnes naučíte a nasadíte, funguje ďalej, s podporou jedného projektu.

Integrované bezpečnostné API. rámec zahŕňa autentifikáciu, podpísané relácie, kontroly CSRF, šifrovanie hesla a validácia vstupu akcie. [Referenčná aplikácia Taskboard](/en/docs/taskboard-reference/) Spojte ich do jednej aplikácie.

Rýchla krivka učenia. Total.js je JavaScript s konvenciami, ktoré sa rýchlo osvoja, takže tím, ktorý ho ešte nepozná, nie je v nevýhode. Repozitáre Total.js obsahujú veľkú zbierku skriptov, príkladov a kompletných aplikácií pod licenciou MIT, ktoré môžete čítať, znovu použiť a učiť sa z nich, a Forge pridáva spustené recepty na zvyšok.

Rýchle a ľahké. Total.js je rýchly a jeden balík bez stromu závislostí ho udržiava ľahkým: menej vecí na načítanie, aktualizáciu a audit, čo najviac záleží na malých serveroch a malých zariadeniach. Forge ho meria za kontrolovaných podmienok a publikuje latenciu, CPU a pamäť pre každú záťaž, so surovými dátami, v [benchmarkoch](/en/benchmarks/).

## Začnite jednoducho: priama HTTP routa

Tento spustiteľný príklad overí telo pomocou kompaktnej natívnej schémy a odpovie priamo z kontroléra: pár riadkov a žiadne ďalšie vrstvy. S rastom aplikácie pridajú doménové akcie opakovane použiteľnú, overenú zmluvu, ktorú môžete volať z rout, kódu a nástrojov.

```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 spája svoje nároky s vecami, ktoré môžete spustiť. [Smernice Total.js](https://github.com/totaljs-es/guidelines) opisujú štýl kódovania ekosystému, [Total.js AI Context](https://github.com/totaljs/aicontext) poskytuje pokyny na implementáciu a [zdrojový manifest](/ai-sources.json) zaznamenáva skontrolované revízie. Ak sa príručka a nainštalovaný rámec niekedy líšia, referenčným je nainštalovaný zdroj.
