ForgeΤεκμηρίωση
el

Τεκμηρίωση

Η δομή του έργου μιας εφαρμογής Total.js 5

Total.js 5 · total5@0.0.19 guidestructurefolders Εκτελέστηκε με το Total.js 5

Μια εφαρμογή Total.js είναι ένας φάκελος με ένα σενάριο εκκίνησης (index.js) και ένα σύνολο φακέλων με σταθερά ονόματα. Δεν εισάγετε τα αρχεία σας: όταν ξεκινά η εφαρμογή, το Total.js διαβάζει τους παρακάτω φακέλους και φορτώνει κάθε αρχείο .js που περιέχουν (σε φάκελο με όνομα plugins/ φορτώνει το index.js κάθε υποφακέλου). Ένα αρχείο είναι μια κανονική ενότητα Node.js· αν εξάγει μια συνάρτηση install, το Total.js την καλεί μετά τη φόρτωση του αρχείου.

ΦάκελοςΤι περιέχει
controllers/Διαδρομές: exports.install = function() { ROUTE(...) }.
definitions/Κώδικας που τρέχει στην εκκίνηση και δηλώνει καθολικά στοιχεία: ενέργειες με NEWACTION(), middleware, AUTH(), βοηθητικές συναρτήσεις, δικά σας καθολικά.
actions/Ενέργειες (NEWACTION()), όταν προτιμάτε να τις έχετε χωριστά από τους άλλους ορισμούς.
schemas/Σχήματα (NEWSCHEMA()) με τις ενέργειές τους.
models/Φορτώνεται στην εκκίνηση όπως οι άλλοι· το Total.js φορτώνει μόνο τα αρχεία, το περιεχόμενό τους εξαρτάται από εσάς.
middleware/Middleware (MIDDLEWARE()), φορτώνεται μετά τους άλλους φακέλους.
modules/Επαναχρησιμοποιήσιμες ενότητες· η εξαγωγή μπορεί να έχει id (φυλάσσεται στο MODS) και μια συνάρτηση install.
extensions/Φορτώνεται στην εκκίνηση όπως οι άλλοι· το Total.js φορτώνει μόνο τα αρχεία, το περιεχόμενό τους εξαρτάται από εσάς.
plugins/Πρόσθετα: ένας φάκελος ανά πρόσθετο με ένα index.js.
views/Προβολές HTML και το layout.html.
public/Στατικά αρχεία που σερβίρονται ως έχουν, χωρίς καμία διαδρομή.
resources/Αρχεία μετάφρασης (.resource), δείτε τη συνταγή για την τοπική προσαρμογή.
jsonschemas/Επαναχρησιμοποιήσιμοι ορισμοί εισόδου (.txt ή .json), δείτε τη συνταγή για τα σχήματα.
databases/Αρχεία της ενσωματωμένης βάσης NoSQL και του MEMORIZE().
tmp/Προσωρινά αρχεία και κρυφές μνήμες (PATH.tmp()).
logs/Αρχεία καταγραφής.
private/Αρχεία που δεν πρέπει να είναι δημόσια· στείλτε τα με $.file() μετά από έλεγχο.
workers/Αρχεία των NEWTHREAD() και NEWFORK().
configΤο αρχείο ρυθμίσεων (αρχείο, όχι φάκελος).

Οι βοηθητικές συναρτήσεις του PATH δημιουργούν την απόλυτη διαδρομή κάθε φακέλου: PATH.root(), PATH.public(), PATH.private(), PATH.tmp(), PATH.logs(), PATH.databases(). Επιστρέφουν τη διαδρομή χωρίς τελική κάθετο και ο φάκελος των προβολών δεν έχει βοηθητική συνάρτηση. Το παράδειγμα βάζει ένα αρχείο σε καθέναν από τους φακέλους που φορτώνει το Total.js και διαβάζει πίσω τι φορτώθηκε.

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