# Varför välja Total.js för en Node.js ansökan

> Vad Total.js ger ett Node.js-team: en beroendefri kärna, allt som en affärsanvändning behöver i ett enda ramverk, inbyggd autentisering och validering, en snabblärningskurva och fullständiga öppna kodanvändningar att börja från.

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

Total.js 5 är ett komplett applikationsramverk för Node.js, distribuerat som `total5`. Ett enda paket ger ett team HTTP-rutter, indatavalidering, serverrenderade vyer, autentisering, uppladdningar, WebSocket-rutter, schemalagda jobb, lokalisering, e-post och mer, allt utformat för att fungera tillsammans. Du bygger applikationen i stället för att välja, koppla ihop och underhålla ett dussin separata bibliotek.

## Vad ditt projekt får

| Vad ditt projekt behöver | Vad Total.js ger dig | Se det i Forge |
|---|---|---|
| En intern affärsapplikation med formulär, skyddade rutter och filuppladdningar | Inbyggda indataschema, autentiseringskrokar och uppladdningshantering, redo att använda | [Validering](/en/total5/validate-json-body/), [autentisering](/en/total5/protect-routes-with-auth/), [uppladdningar](/en/total5/file-upload/) |
| En instrumentpanel med liveuppdateringar och periodiska rapporter | WebSocket-rutter, schemalagda jobb och e-post i samma ramverk | [WebSocket-exempel](/en/total5/websocket-chat/), [cron-jobb](/en/total5/cron-jobs/), [e-post](/en/total5/send-email/) |
| Ett litet team som vill leverera och underhålla en serverapplikation | Automatiskt laddade filer och en gemensam uppsättning konventioner som gör varje projekt bekant | [Projektstruktur](/en/docs/project-structure/), [konventioner](/en/docs/totaljs-agent-conventions/) |
| En serverrenderad applikation | Vyer, layouter och lokalisering i samma ramverk | [Vyer och layouter](/en/total5/views-and-layouts/), [lokalisering](/en/total5/localization/) |

Varje rad länkar till ett exempel som Forge kör. På frontend har Total.js jComponent och en [katalog med hundratals färdiga komponenter](/en/components/), så samma ekosystem täcker också gränssnittet; att använda dem är valfritt.

## Varför team väljer Total.js

En kärna utan externa beroenden. Det installerade paketet `total5` deklarerar inga körtidsberoenden från tredje part. Det finns ingen kedja av moduler skrivna av olika upphovsmän som måste hållas kompatibla, inget övergivet paket som stoppar ditt bygge, ingen överraskning från en transitiv uppdatering. Sådan kontinuitet har en direkt och kraftfull effekt på hur väl ett projekt skalar och hur lätt det är att underhålla år efter år: det du lär dig och levererar i dag fortsätter fungera, uppburet av ett enda projekt.

Inbyggda säkerhets-API:er. ramen innehåller autentisering, undertecknade sessioner, CSRF-checkningar, skript lösenordshasning och åtgärdsintygsvalidering. Applicera dessa faciliteter till dina ansökningsrutter och data. [Taskboard referensansökan](/en/docs/taskboard-reference/) Kombinera dem i en enda applikation.

En snabb inlärningskurva. Total.js är JavaScript, med konventioner som är snabba att lära sig, så ett team som inte känner till det än ligger inte efter. Total.js-förråden innehåller en stor samling skript, exempel och kompletta applikationer under MIT-licensen som du kan läsa, återanvända och lära dig av, och Forge lägger till körda recept för resten.

Snabbt och lätt. Total.js är snabbt, och ett enda paket utan beroendeträd håller det lätt: mindre att ladda, uppdatera och granska, vilket räknas mest på små servrar och små enheter. Forge mäter det under kontrollerade förhållanden och publicerar latens, CPU och minne för varje arbetsbelastning, med rådata, i [benchmarks](/en/benchmarks/).

## Börja enkelt: en direkt HTTP-rutt

Det här körbara exemplet validerar en body med ett kompakt inbyggt schema och svarar direkt från en kontroller: några få rader och inga extra lager. När applikationen växer lägger domänåtgärder till ett återanvändbart, validerat kontrakt som du kan anropa från rutter, kod och verktyg.

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

## Källor

Forge kopplar sina påståenden till saker du kan köra. [Total.js-riktlinjerna](https://github.com/totaljs-es/guidelines) beskriver ekosystemets kodstil, [Total.js AI Context](https://github.com/totaljs/aicontext) ger implementeringsvägledning och [källmanifestet](/ai-sources.json) registrerar de granskade revisionerna. Om en guide och det installerade ramverket någon gång skiljer sig åt är den installerade källkoden referensen.
