# De ce să alegi Total.js pentru o aplicație Node.js

> Ce Total.js Dă un Node.js Echipa: un nucleu liber de dependență, tot ceea ce o aplicație de afaceri are nevoie într-un singur cadru, autentificare și validare integrată, o curbă de învățare rapidă și aplicații complete cu sursă deschisă pentru a începe de la.

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

Total.js 5 este un framework complet de aplicații Node.js, distribuit ca `total5`. Un singur pachet oferă unei echipe rute HTTP, validarea intrării, view-uri randate pe server, autentificare, upload-uri, rute WebSocket, joburi programate, localizare, e-mail și altele, toate concepute să funcționeze împreună. Construiești aplicația în loc să alegi, să conectezi și să întreții o duzină de biblioteci separate.

## Ce primește proiectul tău

| De ce are nevoie proiectul tău | Ce îți oferă Total.js | Vezi în Forge |
|---|---|---|
| O aplicație de business internă cu formulare, rute protejate și upload de fișiere | Scheme native de intrare, hook-uri de autentificare și gestionarea upload-urilor, gata de folosit | [Validare](/en/total5/validate-json-body/), [autentificare](/en/total5/protect-routes-with-auth/), [upload-uri](/en/total5/file-upload/) |
| Un dashboard cu actualizări live și rapoarte periodice | Rute WebSocket, joburi programate și e-mail în același framework | [Exemplu WebSocket](/en/total5/websocket-chat/), [joburi cron](/en/total5/cron-jobs/), [e-mail](/en/total5/send-email/) |
| O echipă mică ce vrea să livreze și să întrețină o aplicație de server | Fișiere încărcate automat și un set comun de convenții care fac fiecare proiect familiar | [Structura proiectului](/en/docs/project-structure/), [convenții](/en/docs/totaljs-agent-conventions/) |
| O aplicație randată pe server | View-uri, layout-uri și localizare în același framework | [View-uri și layout-uri](/en/total5/views-and-layouts/), [localizare](/en/total5/localization/) |

Fiecare rând trimite la un exemplu pe care Forge îl execută. Pe frontend, Total.js are jComponent și un [catalog de sute de componente gata făcute](/en/components/), deci același ecosistem acoperă și interfața; folosirea lor este opțională.

## De ce aleg echipele Total.js

Un nucleu fără dependențe externe. Pachetul `total5` instalat nu declară dependențe terțe la rulare. Nu există un lanț de module scrise de autori diferiți care trebuie ținute compatibile, niciun pachet abandonat care să-ți oprească build-ul, nicio surpriză dintr-o actualizare tranzitivă. O asemenea continuitate are un efect direct și puternic asupra modului în care un proiect scalează și asupra ușurinței de a-l întreține ani la rând: ce înveți și livrezi astăzi continuă să funcționeze, susținut de un singur proiect.

Framework include autentificare, sesiuni semnate, verificări CSRF, hashing de parolă și validarea intrărilor de acțiune. [Taskboard referință](/en/docs/taskboard-reference/) Combinați-le într-o singură aplicație.

O curbă de învățare rapidă. Total.js este JavaScript, cu convenții care se învață repede, deci o echipă care nu îl cunoaște încă nu este în dezavantaj. Depozitele Total.js conțin o colecție mare de scripturi, exemple și aplicații complete sub licența MIT pe care le poți citi, refolosi și din care poți învăța, iar Forge adaugă rețete executate pentru restul.

Rapid și ușor. Total.js este rapid, iar un singur pachet fără arbore de dependențe îl menține ușor: mai puține lucruri de încărcat, actualizat și auditat, ceea ce contează cel mai mult pe servere mici și dispozitive mici. Forge îl măsoară în condiții controlate și publică latența, CPU și memoria pentru fiecare încărcare, cu datele brute, în [benchmark-uri](/en/benchmarks/).

## Începe simplu: o rută HTTP directă

Acest exemplu executabil validează un body cu o schemă nativă compactă și răspunde direct dintr-un controler: câteva linii și niciun strat în plus. Pe măsură ce aplicația crește, acțiunile de domeniu adaugă un contract reutilizabil și validat pe care îl poți apela din rute, cod și unelte.

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

## Surse

Forge își asociază afirmațiile cu lucruri pe care le poți rula. [ghidurile Total.js](https://github.com/totaljs-es/guidelines) descriu stilul de codare al ecosistemului, [Total.js AI Context](https://github.com/totaljs/aicontext) oferă ghidaj de implementare, iar [manifestul surselor](/ai-sources.json) înregistrează reviziile examinate. Dacă un ghid și framework-ul instalat diferă vreodată, sursa instalată este referința.
