Uruchamianie w trybie debug i release
Total.js działa w jednym z dwóch trybów, debug do programowania i release na serwer, a globalna wartość logiczna DEBUG mówi Twojemu kodowi, który jest aktywny. W trybie debug aplikacja działa pod watcherem plików, który restartuje ją po zmianie pliku, błędy pokazują szczegóły i generowane są source mapy. Tryb release nie ma watchera, a strony błędów nie pokazują szczegółów technicznych.
Tryb wybiera sposób uruchomienia aplikacji, w skrypcie startowym (index.js) wywołującym Total.run(options):
- domyślnie jest debug, z watcherem;
options.release = trueuruchamia tryb release; skrypt startowy generowany przez Total.js ustawia to z wiersza poleceń, więcnode index.js --releaseto sposób na uruchomienie produkcji;options.watcher = falseuruchamia jeden proces bez watchera i jest to zawsze tryb release (używają go przykłady z tej książki kucharskiej).
Zanim Total.run() zdecyduje, DEBUG ma wartość domyślną z NODE_ENV: jest false, gdy NODE_ENV=production, a w przeciwnym razie true. Kod uruchamiany w chwili ładowania modułu widzi tę wartość domyślną, więc nie polegaj na NODE_ENV dla ostatecznego trybu, tylko na DEBUG po uruchomieniu aplikacji.
Trasy mogą podążać za trybem. Flaga @debug sprawia, że trasa istnieje tylko w trybie debug, a @release tylko w trybie release; w drugim trybie adres URL odpowiada 404. Używaj @debug dla narzędzi potrzebnych podczas programowania (przeglądarka bazy danych, trasa z danymi testowymi), aby nigdy nie trafiły przypadkiem na produkcję.
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' });
}