ForgeDokumentácia
sk

Dokumentácia

Projektová štruktúra aplikácie Total.js

Total.js 5 · total5@0.0.19 guidestructurefolders Spustené s Total.js 5

Aplikácia Total.js je priečinok so štartovacím skriptom (index.js) a sadou priečinkov s pevnými názvami. Svoje súbory neimportujete: pri štarte aplikácie Total.js prečíta priečinky nižšie a načíta každý súbor .js v nich (v priečinku plugins/ načíta index.js z každého podpriečinka). Súbor je bežný modul Node.js; ak exportuje funkciu install, Total.js ju po načítaní súboru zavolá.

PriečinokČo patrí dovnútra
controllers/Routy: exports.install = function() { ROUTE(...) }.
definitions/Kód, ktorý sa spustí pri štarte a deklaruje globálne veci: akcie cez NEWACTION(), middleware, AUTH(), helpery, vaše vlastné globálne premenné.
actions/Akcie (NEWACTION()), ak ich chcete mať oddelene od ostatných definícií.
schemas/Schémy (NEWSCHEMA()) s ich akciami.
models/Načíta sa pri štarte ako ostatné; Total.js súbory iba načíta, ich obsah je na vás.
middleware/Middleware (MIDDLEWARE()), načítaný po ostatných priečinkoch.
modules/Opakovane použiteľné moduly; export môže mať id (uloží sa do MODS) a funkciu install.
extensions/Načíta sa pri štarte ako ostatné; Total.js súbory iba načíta, ich obsah je na vás.
plugins/Pluginy: jeden priečinok na plugin s index.js.
views/HTML pohľady a layout.html.
public/Statické súbory poskytované tak, ako sú, bez akejkoľvek routy.
resources/Prekladové súbory (.resource), pozrite recept o lokalizácii.
jsonschemas/Opakovane použiteľné definície vstupu (.txt alebo .json), pozrite recept o schémach.
databases/Súbory vstavanej NoSQL databázy a MEMORIZE().
tmp/Dočasné súbory a cache (PATH.tmp()).
logs/Súbory logov.
private/Súbory, ktoré nesmú byť verejné; odošlite ich cez $.file() po kontrole.
workers/Súbory NEWTHREAD() a NEWFORK().
configKonfiguračný súbor (súbor, nie priečinok).

Helpery PATH vytvárajú absolútnu cestu každého priečinka: PATH.root(), PATH.public(), PATH.private(), PATH.tmp(), PATH.logs(), PATH.databases(). Vracajú cestu bez koncovej lomky a priečinok pohľadov helper nemá. Príklad vloží súbor do každého priečinka, ktorý Total.js načítava, a prečíta späť, čo sa načítalo.

extensions/marker.js
(MAIN.loaded = MAIN.loaded || []).push('extensions');
modules/marker.js
(MAIN.loaded = MAIN.loaded || []).push('modules');
module.exports.id = 'modules-file';
actions/marker.js
(MAIN.loaded = MAIN.loaded || []).push('actions');
schemas/marker.js
(MAIN.loaded = MAIN.loaded || []).push('schemas');
models/marker.js
(MAIN.loaded = MAIN.loaded || []).push('models');
definitions/marker.js
(MAIN.loaded = MAIN.loaded || []).push('definitions');
controllers/marker.js
(MAIN.loaded = MAIN.loaded || []).push('controllers');
middleware/marker.js
(MAIN.loaded = MAIN.loaded || []).push('middleware');
controllers/structure.js
exports.install = function() {
	ROUTE('GET /structure/', structure);
};

function structure($) {
	$.json({
		loaded: MAIN.loaded || [],
		modules: Object.keys(MODS),
		paths: {
			root: PATH.root(),
			public: PATH.public(),
			private: PATH.private(),
			tmp: PATH.tmp(),
			logs: PATH.logs(),
			databases: PATH.databases()
		}
	});
}