ForgeDocumentație
ro

Documentație

Structura proiectului a unei aplicații Total.js 5

Total.js 5 · total5@0.0.19 guidestructurefolders Executată cu Total.js 5

O aplicație Total.js este un folder cu un script de pornire (index.js) și un set de foldere cu nume fixe. Nu îți imporți fișierele: la pornirea aplicației, Total.js citește folderele de mai jos și încarcă fiecare fișier .js din ele (într-un folder numit plugins/ încarcă index.js din fiecare subfolder). Un fișier este un modul Node.js obișnuit; dacă exportă o funcție install, Total.js o apelează după încărcarea fișierului.

FolderCe conține
controllers/Rute: exports.install = function() { ROUTE(...) }.
definitions/Cod care rulează la pornire și declară lucruri globale: acțiuni cu NEWACTION(), middleware, AUTH(), helperi, propriile tale globale.
actions/Acțiuni (NEWACTION()), dacă preferi să le ții separat de celelalte definiții.
schemas/Scheme (NEWSCHEMA()) cu acțiunile lor.
models/Încărcat la pornire ca celelalte; Total.js doar încarcă fișierele, conținutul lor depinde de tine.
middleware/Middleware (MIDDLEWARE()), încărcat după celelalte foldere.
modules/Module reutilizabile; exportul poate avea un id (păstrat în MODS) și o funcție install.
extensions/Încărcat la pornire ca celelalte; Total.js doar încarcă fișierele, conținutul lor depinde de tine.
plugins/Plugin-uri: un folder pe plugin, cu un index.js.
views/Vizualizări HTML și layout.html.
public/Fișiere statice servite așa cum sunt, fără nicio rută.
resources/Fișiere de traducere (.resource), vezi rețeta de localizare.
jsonschemas/Definiții de intrare reutilizabile (.txt sau .json), vezi rețeta despre scheme.
databases/Fișierele bazei de date NoSQL integrate și ale MEMORIZE().
tmp/Fișiere temporare și cache-uri (PATH.tmp()).
logs/Fișiere de jurnal.
private/Fișiere care nu trebuie să fie publice; trimite-le cu $.file() după o verificare.
workers/Fișierele NEWTHREAD() și NEWFORK().
configFișierul de configurare (un fișier, nu un folder).

Helperii PATH construiesc calea absolută a fiecărui folder: PATH.root(), PATH.public(), PATH.private(), PATH.tmp(), PATH.logs(), PATH.databases(). Returnează calea fără bară finală, iar folderul vizualizărilor nu are helper. Exemplul pune un fișier în fiecare dintre folderele pe care le încarcă Total.js și citește înapoi ce s-a încărcat.

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