# Futtatás debug és release módban

> A Total.run() opciói választanak a debug és a release mód között; olvasd ki a módot a DEBUG-ból, és korlátozz útvonalakat egy módra a @debug és @release jelzőkkel.

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

A Total.js két mód egyikében fut, **debug** a fejlesztéshez és **release** a szerverhez, a globális `DEBUG` logikai érték pedig megmondja a kódodnak, melyik aktív. Debug módban az alkalmazás fájlfigyelő (watcher) alatt fut, amely fájlmódosításkor újraindítja, a hibák részleteket mutatnak, és source mapek készülnek. A release módnak nincs watchere, a hibaoldalak pedig nem mutatják a technikai részleteket.

A módot az dönti el, hogyan indítod az alkalmazást, az indítóscriptben (`index.js`), amely a `Total.run(options)`-t hívja:

- az alapértelmezés a debug, a watcherrel;
- az `options.release = true` release módot indít; a Total.js által generált indítóscript parancssorból állítja be, így a `node index.js --release` a termelés indításának módja;
- az `options.watcher = false` egyetlen folyamatot futtat watcher nélkül, és ez mindig release mód (ezt használják a receptgyűjtemény példái).

Mielőtt a `Total.run()` döntene, a `DEBUG`-nak van egy alapértéke a `NODE_ENV`-ből: `false`, ha `NODE_ENV=production`, különben `true`. Az a kód, amely egy modul betöltésekor fut, ezt az alapértéket látja, ezért a végső módhoz ne a `NODE_ENV`-re hagyatkozz, csak a `DEBUG`-ra az alkalmazás elindulása után.

Az útvonalak követhetik a módot. A `@debug` jelző azt eredményezi, hogy az útvonal csak debug módban létezik, a `@release` pedig csak release módban; a másik módban az URL 404-gyel válaszol. A `@debug`-ot a fejlesztés közben szükséges eszközökhöz használd (adatbázis-megjelenítő, tesztadatokat feltöltő útvonal), hogy sosem kerüljenek véletlenül élesbe.

```js controllers/mode.js
exports.install = function() {
	ROUTE('GET /mode/', mode);
	ROUTE('GET /tools/ @debug', tools);
	ROUTE('GET /status/ @release', status);
};

function mode($) {
	$.json({ debug: DEBUG });
}

function tools($) {
	$.json({ tools: true });
}

function status($) {
	$.json({ status: 'ok' });
}
```
