Обектът на долара е Total.js 5 Търговци
Манипулаторът на маршрут получава един обект, на този сайт записван като $. Той описва заявката и отговаря на нея. Отговаряйте само веднъж: след $.json(), $.html() или друг отговор заявката е приключила.
Свойства
| Свойство | Тип | Какво е |
|---|---|---|
$.url | string | Пътят на заявката, без низа на заявката. |
$.method | string | GET, POST... |
$.query | object | Низът на заявката, анализиран. |
$.params | object | Сегментите {name} на маршрута. |
$.body | object | Тялото, анализирано според типа на съдържанието (JSON, URL-encoded форма, XML или multipart полета). |
$.files | array | Качените файлове на multipart заявка. |
$.headers | object | Заглавията на заявката, с имена с малки букви. |
$.ip | string | IP адресът; първият адрес от x-forwarded-for, когато заглавието съществува. |
$.host | string | Заглавието host. |
$.referrer | string | Заглавието referer. |
$.protocol | string | http или https (и когато прокси го посочва в x-forwarded-proto). |
$.ext | string | Разширението на URL адреса, без точката ($.extension е същото). |
$.xhr | boolean | true, когато заглавието x-requested-with е XMLHttpRequest. |
$.mobile | boolean | true, когато user agent изглежда като мобилен браузър. |
$.robot | boolean | true, когато user agent изглежда като crawler. |
$.ua | string | Кратко име на браузъра и системата, например iPhone Safari или Windows Chrome. |
$.user | object | Потребителят, одобрен от AUTH(), или нищо. |
$.language | string | Езикът, избран от LOCALIZE(). |
$.datatype | string | json, urlencoded, multipart, xml, text или binary: типът на тялото на заявката. |
$.response | object | Какво ще бъде изпратено: status, headers и value. Променете $.response.status и $.response.headers, преди да отговорите. |
$.req, $.res | objects | Заявката и отговорът на 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) | Отговаря с байтове и тип на съдържанието. | 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) | Чете бисквитка или записва такава, когато подадете стойност. | 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) | Задава заглавията за кеш и last-modified на отговора. | controller-completion-and-cache |
$.clear() | Премахва временните файлове на качването. Те се премахват така или иначе, когато заявката приключи. | file-upload |
$.autoclear(false) | Запазва качените файлове след заявката, за да ги ползвате по-късно. | upload-lifecycle-and-href |
$.custom() | Казва на фреймуърка, че отговаряте сами през $.res: той няма да изпрати нищо. | controller-completion-and-cache |
$.href(key, value) | Използвайте QUERIFY() както в свързаната рецепта, изпитания роден помощник за връзки със заявка. | upload-lifecycle-and-href |
$.flush(), $.resume(), $.free(), $.cancel() | Вътрешни методи: не ги извиквайте. |
Примерът отговаря със свойствата и извиква методите, които не се нуждаят от подготовка.
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');
}
}