ForgeDokumentáció
hu

Dokumentáció

A Total.js 5 alkalmazás tervezési szerkezete

Total.js 5 · total5@0.0.19 guidestructurefolders Total.js 5-tel lefuttatva

A Total.js alkalmazás egy mappa egy indítószkripttel (index.js) és rögzített nevű mappák halmazával. A fájljaidat nem importálod: az alkalmazás indulásakor a Total.js beolvassa az alábbi mappákat, és betölt minden bennük lévő .js fájlt (a plugins/ nevű mappában minden almappa index.js fájlját tölti be). A fájl egy szokásos Node.js-modul; ha exportál egy install függvényt, a Total.js a fájl betöltése után meghívja.

MappaMi kerül bele
controllers/Útvonalak: exports.install = function() { ROUTE(...) }.
definitions/Induláskor lefutó kód, amely globális dolgokat deklarál: műveletek a NEWACTION()-nel, middleware, AUTH(), segédfüggvények, saját globálisok.
actions/Műveletek (NEWACTION()), ha külön szeretnéd tartani őket a többi definíciótól.
schemas/Sémák (NEWSCHEMA()) a műveleteikkel.
models/Induláskor töltődik be, mint a többi; a Total.js csak a fájlokat tölti be, a tartalmuk rajtad múlik.
middleware/Middleware (MIDDLEWARE()), a többi mappa után töltődik be.
modules/Újrahasznosítható modulok; az export rendelkezhet id-vel (a MODS-ban tárolódik) és install függvénnyel.
extensions/Induláskor töltődik be, mint a többi; a Total.js csak a fájlokat tölti be, a tartalmuk rajtad múlik.
plugins/Bővítmények: bővítményenként egy mappa egy index.js fájllal.
views/HTML nézetek és a layout.html.
public/Statikus fájlok, változtatás nélkül kiszolgálva, útvonal nélkül.
resources/Fordítási fájlok (.resource), lásd a lokalizációs receptet.
jsonschemas/Újrahasznosítható bemeneti definíciók (.txt vagy .json), lásd a sémákról szóló receptet.
databases/A beépített NoSQL adatbázis és a MEMORIZE() fájljai.
tmp/Ideiglenes fájlok és gyorsítótárak (PATH.tmp()).
logs/Naplófájlok.
private/Fájlok, amelyek nem lehetnek nyilvánosak; ellenőrzés után küldd el őket a $.file()-lal.
workers/A NEWTHREAD() és a NEWFORK() fájljai.
configA konfigurációs fájl (fájl, nem mappa).

A PATH segédfüggvényei felépítik az egyes mappák abszolút útvonalát: PATH.root(), PATH.public(), PATH.private(), PATH.tmp(), PATH.logs(), PATH.databases(). Záró perjel nélküli útvonalat adnak vissza, a nézetek mappájához pedig nincs segédfüggvény. A példa minden olyan mappába tesz egy fájlt, amelyet a Total.js betölt, és visszaolvassa, mi töltődött be.

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