ForgeDokumentation
sv

Dokumentation

Projektstruktur av en Total.js 5 ansökan

Total.js 5 · total5@0.0.19 guidestructurefolders Körd med Total.js 5

En Total.js-applikation är en mapp med ett startskript (index.js) och en uppsättning mappar med fasta namn. Du importerar inte dina filer: när applikationen startar läser Total.js mapparna nedan och laddar varje .js-fil i dem (i en mapp som heter plugins/ laddar den index.js i varje undermapp). En fil är en vanlig Node.js-modul; om den exporterar en install-funktion anropar Total.js den efter att filen laddats.

MappVad som hör hemma där
controllers/Routes: exports.install = function() { ROUTE(...) }.
definitions/Kod som körs vid start och deklarerar globala saker: åtgärder med NEWACTION(), middleware, AUTH(), hjälpfunktioner, dina egna globaler.
actions/Åtgärder (NEWACTION()), om du föredrar dem separat från de andra definitionerna.
schemas/Scheman (NEWSCHEMA()) med deras åtgärder.
models/Laddas vid start som de andra; Total.js laddar bara filerna, vad de innehåller är upp till dig.
middleware/Middleware (MIDDLEWARE()), laddas efter de andra mapparna.
modules/Återanvändbara moduler; exporten kan ha ett id (sparas i MODS) och en install-funktion.
extensions/Laddas vid start som de andra; Total.js laddar bara filerna, vad de innehåller är upp till dig.
plugins/Plugins: en mapp per plugin med en index.js.
views/HTML-vyer och layout.html.
public/Statiska filer som levereras som de är, utan någon route.
resources/Översättningsfiler (.resource), se receptet om lokalisering.
jsonschemas/Återanvändbara indatadefinitioner (.txt eller .json), se receptet om scheman.
databases/Filer för den inbyggda NoSQL-databasen och för MEMORIZE().
tmp/Temporära filer och cacher (PATH.tmp()).
logs/Loggfiler.
private/Filer som inte får vara offentliga; skicka dem med $.file() efter en kontroll.
workers/Filer för NEWTHREAD() och NEWFORK().
configKonfigurationsfilen (en fil, inte en mapp).

Hjälpfunktionerna i PATH bygger den absoluta sökvägen till varje mapp: PATH.root(), PATH.public(), PATH.private(), PATH.tmp(), PATH.logs(), PATH.databases(). De returnerar sökvägen utan avslutande snedstreck, och mappen för vyer har ingen hjälpfunktion. Exemplet lägger en fil i var och en av mapparna som Total.js laddar och läser tillbaka vad som laddades.

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