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

Τεκμηρίωση

Το $ αντικείμενο ενός Total.js 5 εμπόρου

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

Ένας χειριστής διαδρομής λαμβάνει ένα αντικείμενο, που γράφεται $ σε αυτόν τον ιστότοπο. Περιγράφει το αίτημα και το απαντά. Απαντήστε μία φορά: μετά το $.json(), το $.html() ή οποιαδήποτε άλλη απάντηση, το αίτημα έχει ολοκληρωθεί.

Ιδιότητες

ΙδιότηταΤύποςΤι είναι
$.urlstringΗ διαδρομή του αιτήματος, χωρίς τη συμβολοσειρά ερωτήματος.
$.methodstringGET, POST...
$.queryobjectΗ συμβολοσειρά ερωτήματος, αναλυμένη.
$.paramsobjectΤα τμήματα {name} της διαδρομής.
$.bodyobjectΤο σώμα, αναλυμένο ανάλογα με τον τύπο περιεχομένου (JSON, φόρμα URL-encoded, XML ή πεδία multipart).
$.filesarrayΤα μεταφορτωμένα αρχεία ενός αιτήματος multipart.
$.headersobjectΟι κεφαλίδες του αιτήματος, με ονόματα με πεζά.
$.ipstringΗ διεύθυνση IP· η πρώτη διεύθυνση του x-forwarded-for όταν υπάρχει η κεφαλίδα.
$.hoststringΗ κεφαλίδα host.
$.referrerstringΗ κεφαλίδα referer.
$.protocolstringhttp ή https (και όταν ένας proxy το δηλώνει στο x-forwarded-proto).
$.extstringΗ επέκταση του URL, χωρίς την τελεία (το $.extension είναι το ίδιο).
$.xhrbooleantrue όταν η κεφαλίδα x-requested-with είναι XMLHttpRequest.
$.mobilebooleantrue όταν ο user agent μοιάζει με κινητό πρόγραμμα περιήγησης.
$.robotbooleantrue όταν ο user agent μοιάζει με crawler.
$.uastringΈνα σύντομο όνομα του προγράμματος περιήγησης και του συστήματος, όπως iPhone Safari ή Windows Chrome.
$.userobjectΟ χρήστης που ενέκρινε το AUTH(), ή τίποτα.
$.languagestringΗ γλώσσα που επέλεξε το LOCALIZE().
$.datatypestringjson, urlencoded, multipart, xml, text ή binary: ο τύπος του σώματος του αιτήματος.
$.responseobjectΤι θα σταλεί: status, headers και value. Αλλάξτε τα $.response.status και $.response.headers πριν απαντήσετε.
$.req, $.resobjectsΤο αίτημα και η απάντηση του Node.js.

Μέθοδοι που απαντούν

ΜέθοδοςΤι κάνειΣυνταγή
$.json(value)Απαντά με JSON.responses
$.jsonstring(text)Απαντά με ένα κείμενο που είναι ήδη JSON, χωρίς να το σειριοποιήσει ξανά.controller-completion-and-cache
$.html(text)Απαντά με HTML.responses
$.plain(text)Απαντά με απλό κείμενο (το $.text είναι το ίδιο).responses
$.xml(text)Απαντά με XML.responses
$.empty()Απαντά με κατάσταση 204 και χωρίς σώμα.responses
$.redirect(url, permanent)Ανακατευθύνει (302, ή 301 όταν το permanent είναι true).responses
$.binary(buffer, type, name)Απαντά με byte και έναν τύπο περιεχομένου.responses
$.file(path, name)Στέλνει ένα αρχείο από τον δίσκο.file-download
$.stream(type, stream, name)Στέλνει μια αναγνώσιμη ροή.file-download
$.filefs(storage, id)Στέλνει ένα αρχείο ενός FILESTORAGE.filestorage
$.image(options)Δημιουργεί και στέλνει μια εικόνα κατά παραγγελία.images
$.view(name, model)Αποδίδει μια προβολή με το layout και απαντά με αυτήν.views-and-layouts
$.layout(name)Επιλέγει άλλο layout για το επόμενο $.view().view-sections
$.proxy(url)Προωθεί το αίτημα σε άλλο URL και απαντά με την απάντησή του.proxy
$.respond(value)Απαντά στη μορφή του $.response.output (json όταν δεν έχει οριστεί).controller-completion-and-cache
$.invalid(value)Απαντά με σφάλμα: ένα κείμενο, έναν κωδικό κατάστασης όπως 404 ή ένα ErrorBuilder.actions-crud
$.fallback(code)Απαντά με τη σελίδα ενός κωδικού σφάλματος, την προσαρμοσμένη όταν υπάρχει ROUTE('#404').error-pages
$.success(value)Απαντά { "success": true }· το value προστίθεται σε αυτό.responses
$.callback(err, value)Με σφάλμα απαντά $.invalid(err), αλλιώς $.json(value), ή $.success() όταν το value είναι undefined. Χωρίς ορίσματα επιστρέφει μια συνάρτηση (err, response) που κάνει το ίδιο.actions-crud
$.successful(fn)Επιστρέφει μια συνάρτηση (err, a, b, c): με σφάλμα απαντά $.invalid(err), αλλιώς καλεί το fn(a, b, c).controller-completion-and-cache
$.done(arg)Επιστρέφει μια συνάρτηση (err, response): με σφάλμα απαντά $.invalid(err), αλλιώς απαντά με το αντικείμενο επιτυχίας.controller-completion-and-cache

Άλλες μέθοδοι

ΜέθοδοςΤι κάνειΣυνταγή
$.cookie(name, value, expiration)Διαβάζει ένα cookie, ή γράφει ένα όταν περνάτε τιμή.headers-and-cookies
$.csrf()Δημιουργεί ένα διακριτικό CSRF για αυτόν τον πελάτη.csrf-protection
$.hostname(path)Η διεύθυνση αυτού του διακομιστή: πρωτόκολλο, κεντρικός υπολογιστής και η διαδρομή που περνάτε.restbuilder
$.action(name, model)Εκτελεί μια ενέργεια με αυτό το αίτημα (χρήστης, query και params).calling-actions-from-code
$.transform(name, value, callback)Εκτελεί έναν μετασχηματισμό με αυτό το αίτημα.transforms
$.authorize(callback)Εκτελεί το AUTH() για αυτό το αίτημα και ορίζει το $.user· επιστρέφει promise όταν δεν υπάρχει callback.controller-completion-and-cache
$.notmodified(date)Απαντά 304 και επιστρέφει true όταν το αίτημα έχει την κεφαλίδα if-modified-since με αυτή την ημερομηνία.controller-completion-and-cache
$.httpcache(date)Ορίζει τις κεφαλίδες cache και το last-modified της απάντησης.controller-completion-and-cache
$.clear()Αφαιρεί τα προσωρινά αρχεία της μεταφόρτωσης. Αφαιρούνται ούτως ή άλλως όταν τελειώσει το αίτημα.file-upload
$.autoclear(false)Κρατά τα μεταφορτωμένα αρχεία μετά το αίτημα, ώστε να τα χρησιμοποιήσετε αργότερα.upload-lifecycle-and-href
$.custom()Λέει στο framework ότι απαντάτε εσείς μέσω του $.res: δεν θα στείλει τίποτα.controller-completion-and-cache
$.href(key, value)Χρησιμοποιήστε το QUERIFY() όπως στη συνδεδεμένη συνταγή, τον δοκιμασμένο εγγενή βοηθό για συνδέσμους με query.upload-lifecycle-and-href
$.flush(), $.resume(), $.free(), $.cancel()Εσωτερικές μέθοδοι: μην τις καλείτε.

Το παράδειγμα απαντά με τις ιδιότητες και καλεί τις μεθόδους που δεν χρειάζονται προετοιμασία.

controllers/api.js
exports.install = function() {
	ROUTE('GET /info/{a}/{b}/', info);
	ROUTE('POST /body/ @json', body);
	ROUTE('GET /answers/{kind}/', answers);
	ROUTE('GET /callback/{kind}/', callback);
};

function info($) {
	$.json({
		url: $.url,
		method: $.method,
		query: $.query,
		params: $.params,
		ext: $.ext,
		xhr: $.xhr,
		mobile: $.mobile,
		robot: $.robot,
		ua: $.ua,
		ip: $.ip,
		host: $.host,
		referrer: $.referrer,
		protocol: $.protocol,
		hostname: $.hostname('/x/'),
		datatype: $.datatype
	});
}

function body($) {
	$.json({ body: $.body, datatype: $.datatype });
}

function answers($) {
	switch ($.params.kind) {
		case 'json': return $.json({ a: 1 });
		case 'jsonstring': return $.jsonstring('{"a":1}');
		case 'html': return $.html('<b>x</b>');
		case 'plain': return $.plain('x');
		case 'xml': return $.xml('<a>1</a>');
		case 'empty': return $.empty();
		case 'redirect': return $.redirect('/x/', true);
		case 'binary': return $.binary(Buffer.from('abc'), 'application/octet-stream');
		case 'invalid': return $.invalid(409);
		case 'success': return $.success({ id: 7 });
		case 'status': $.response.status = 201; return $.json({ created: true });
		case 'header': $.response.headers['x-example'] = 'yes'; return $.json({});
	}
}

function callback($) {
	switch ($.params.kind) {
		case 'error': return $.callback('failed');
		case 'value': return $.callback(null, { v: 1 });
		case 'nothing': return $.callback(null);
		case 'function': return setImmediate($.callback(), null, { later: true });
		case 'successful': return setImmediate($.successful(function(a, b) { $.json({ a: a, b: b }); }), null, 'x', 'y');
	}
}