# Beginnen Sie mit Total.js

> Installieren Sie Total.js 5, erstellen Sie das Start-Script und die erste Route, Aktion und Ansicht und führen Sie die Anwendung aus.

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

Total.js 5 ist das npm-Paket `total5`. Du brauchst Node.js (die Beispiele dieser Seite laufen mit Node.js 24) und einen leeren Ordner. Erstelle das Projekt und installiere das Paket:

```bash
mkdir hello && cd hello
npm init -y
npm install total5
```

Das Startskript ist eine Datei namens `index.js` im Wurzelverzeichnis des Projekts. Sie lädt das Framework und startet den Server:

```js
require('total5');

Total.run({ port: 8000 });
```

Das ist der gesamte Code, den du zum Starten schreibst. Die Dateien in den Ordnern des Projekts (siehe die Seite zur Projektstruktur) werden automatisch geladen. Erstelle diese drei Dateien.

Ein **Controller** deklariert die Routen. `ROUTE('GET /')` ohne Handler würde die View mit demselben Namen anzeigen; hier rendert der Handler `views/index.html` mit einem Modell:

```js controllers/index.js
exports.install = function() {
	ROUTE('GET /', home);
	ROUTE('POST /greet/ --> *Greet/say');
};

function home($) {
	$.view('index', { title: 'Hello Total.js' });
}
```

Eine **Action** hat ihre eigene Validierung. Die obige Route führt `Greet/say` mit dem JSON-Body der Anfrage aus, und das Framework lehnt einen Body ab, der nicht zu `input` passt:

```js definitions/greet.js
NEWACTION('Greet/say', {
	name: 'Say hello',
	input: '*name:String',
	action: function($, model) {
		$.callback({ message: 'Hello, ' + model.name + '!' });
	}
});
```

Eine **View** ist HTML mit `@{...}`-Blöcken. `views/layout.html` umschließt jede View, und `@{body}` ist der Platz der View:

```html views/layout.html
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>Hello</title></head>
<body>@{body}</body>
</html>
```

```html views/index.html
<h1>@{model.title}</h1>
```

Starten Sie die Anwendung mit `node index.js`. Im standardmäßigen Modus `debug` startet sie nach einer Dateiänderung neu und gibt ihre Adresse im Terminal aus. Verwenden Sie für den Modus `release` den Befehl `node index.js --release`. Die Anleitung zu den Betriebsmodi beschreibt die Unterschiede.
