# Waarom kiezen Total.js Voor de A Node.js Aanvulling

> Wat Total.js geeft een team van Node.js: een afhankelijkheidvrije kern, alles wat een bedrijfse applicatie nodig heeft in één kader, ingebouwde authenticatie en validatie, een snelle leren curve en complete open source applicaties om te beginnen.

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

Total.js 5 is een compleet applicatieframework voor Node.js, verspreid als `total5`. Eén pakket geeft een team HTTP-routes, invoervalidatie, server-side gerenderde views, authenticatie, uploads, WebSocket-routes, geplande taken, lokalisatie, e-mail en meer, alles ontworpen om samen te werken. Je bouwt de applicatie in plaats van een dozijn losse bibliotheken te kiezen, aan elkaar te koppelen en te onderhouden.

## Wat je project krijgt

| Wat je project nodig heeft | Wat Total.js je geeft | Zie het in Forge |
|---|---|---|
| Een interne bedrijfsapplicatie met formulieren, beveiligde routes en bestandsuploads | Native invoerschema's, authenticatiehooks en uploadafhandeling, direct bruikbaar | [Validatie](/en/total5/validate-json-body/), [authenticatie](/en/total5/protect-routes-with-auth/), [uploads](/en/total5/file-upload/) |
| Een dashboard met live-updates en periodieke rapporten | WebSocket-routes, geplande taken en e-mail in hetzelfde framework | [WebSocket-voorbeeld](/en/total5/websocket-chat/), [cron-taken](/en/total5/cron-jobs/), [e-mail](/en/total5/send-email/) |
| Een klein team dat één serverapplicatie wil opleveren en onderhouden | Automatisch geladen bestanden en een gedeelde set conventies die elk project vertrouwd houden | [Projectstructuur](/en/docs/project-structure/), [conventies](/en/docs/totaljs-agent-conventions/) |
| Een server-side gerenderde applicatie | Views, layouts en lokalisatie binnen hetzelfde framework | [Views en layouts](/en/total5/views-and-layouts/), [lokalisatie](/en/total5/localization/) |

Elke rij verwijst naar een voorbeeld dat Forge uitvoert. Aan de frontendkant heeft Total.js jComponent en een [catalogus van honderden kant-en-klare componenten](/en/components/), zodat hetzelfde ecosysteem ook de interface dekt; het gebruik ervan is optioneel.

## Waarom teams Total.js kiezen

Een kern zonder externe afhankelijkheden. Het geïnstalleerde pakket `total5` declareert geen runtime-afhankelijkheden van derden. Er is geen keten van modules van verschillende auteurs die compatibel moet blijven, geen verlaten pakket dat je build stopt, geen verrassing door een transitieve update. Zulke continuïteit heeft een direct en krachtig effect op hoe goed een project schaalt en hoe gemakkelijk het jarenlang te onderhouden is: wat je vandaag leert en oplevert blijft werken, gedragen door één project.

Inbouwde beveiligings-API's. Het kader omvat authenticatie, gesignaleerde sessies, CSRF-checks, scrypt password hashing en actie input validatie. [Taskboard referentie applicatie](/en/docs/taskboard-reference/) Verzamel ze in één applicatie.

Een snelle leercurve. Total.js is JavaScript, met conventies die snel te leren zijn, dus een team dat het nog niet kent loopt geen achterstand op. De Total.js-repositories bevatten een grote verzameling scripts, voorbeelden en complete applicaties onder de MIT-licentie die je kunt lezen, hergebruiken en waarvan je kunt leren, en Forge voegt uitgevoerde recepten toe voor de rest.

Snel en licht. Total.js is snel, en één pakket zonder afhankelijkheidsboom houdt het licht: minder om te laden, bij te werken en te auditen, wat het meest telt op kleine servers en kleine apparaten. Forge meet het onder gecontroleerde omstandigheden en publiceert latentie, CPU en geheugen voor elke belasting, met de ruwe gegevens, in de [benchmarks](/en/benchmarks/).

## Begin eenvoudig: een directe HTTP-route

Dit uitvoerbare voorbeeld valideert een body met een compact native schema en antwoordt direct vanuit een controller: een paar regels en geen extra lagen. Naarmate de applicatie groeit, voegen domeinacties een herbruikbaar, gevalideerd contract toe dat je kunt aanroepen vanuit routes, code en hulpmiddelen.

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

## Bronnen

Forge koppelt zijn beweringen aan dingen die je kunt uitvoeren. De [Total.js-richtlijnen](https://github.com/totaljs-es/guidelines) beschrijven de codeerstijl van het ecosysteem, [Total.js AI Context](https://github.com/totaljs/aicontext) levert implementatiehulp en het [bronmanifest](/ai-sources.json) legt de beoordeelde revisies vast. Als een gids en het geïnstalleerde framework ooit verschillen, is de geïnstalleerde broncode de referentie.
