ForgeTotal.js 5
sk

Total.js 5 (backend)

Cesty, akcie, schémy, databázy, WebSocket, view a všetko, čo beží na serveri.

ReceptŠtítky

Over JSON body pomocou akcie

Definuj vstupnú schému v akcii a nechaj Total.js zamietnuť neplatné požiadavky ešte pred spustením tvojho kódu.

routingactionsvalidation

Sprístupni akcie cez jeden API endpoint

Deklaruj endpointy ROUTE('API ...'), aby klient mohol volať mnoho akcií cez POST {schema, data} na jednej URL.

routingapiactions

Čítaj parametre URL v ceste

Deklaruj dynamické segmenty ako {id} v ceste a čítaj ich z $.params.

routingparams

Zachyť veľa URL cestou so zástupným znakom

Ukonči cestu znakom * a zachytíš všetko pod danou cestou; pre výnimky ponechaj špecifické cesty.

routing

Obsluhuj každú HTTP metódu

Deklaruj cesty pre GET, POST, PUT, PATCH a DELETE a čítaj metódu z $.method.

routinghttp

Obmedz cestu pomocou flagov

Pridaj @flagy ako @json, @xml alebo @upload, aby cesta zodpovedala len požiadavkám, pre ktoré je určená.

routingflags

Čítaj query string a telo požiadavky

Použi $.query pre parametre URL a $.body pre JSON alebo dáta formulára v handleri cesty.

routingrequest

Obmedz veľkosť payloadu a timeout cesty

Pridaj k ceste <1kb alebo <10s a obmedz veľkosť požiadavky alebo čas, ktorý môže handler zabrať.

routingsecuritylimits

Deklaruj typované parametre cesty v akcii

Použi voľbu params v NEWACTION, aby Total.js overil parametre URL ešte pred spustením tvojho kódu.

actionsroutingvalidation

Vyber, ako odpovedať

Posielaj JSON, HTML, čistý text, XML, presmerovania, prázdne odpovede alebo binárne dáta z handlera cesty.

routingresponse

Čítaj hlavičky a pracuj s cookies

Čítaj hlavičky požiadavky z $.headers, čítaj a zapisuj cookies cez $.cookie() a nastavuj hlavičky odpovede.

routingheaderscookies

Prijímaj nahrávanie súborov

Prijmi multipart/form-data s flagom @upload a čítaj nahrané súbory z $.files.

routinguploadfiles

Povoľ požiadavky z iných origin cez CORS

Zavolaj CORS(), aby mohol tvoje cesty z prehliadača používať jeden origin, viac origin alebo každý origin.

securitycorsrouting

Vykresli view bez písania handlera

Cesta bez handlera vykreslí view pomenované podľa jej URL, alebo view, ktoré uvedieš.

routingviews

Vyberte správny typ vstupu pre akciu

Vyberte typy vstupov, parametrov, definícií dotazu a výstupu vrátane konverzií a odmietnutých hodnôt.

actionsvalidationtypes

Over query string v akcii

Deklaruj query v NEWACTION na overenie a prevod parametrov URL a čítaj čisté hodnoty z $.query.

actionsvalidationquery

Filtruj odpoveď akcie pomocou output

Deklaruj output, aby z akcie odišli len uvedené polia, napríklad aby si nikdy neprezradil hash hesla.

actionssecurity

Vyžaduj v akcii používateľa alebo oprávnenie

Použi voľby user a permissions v NEWACTION, aby autorizácia bola pri akcii a nie pri každej ceste.

actionsauthsecurity

Chráň cesty cez AUTH

Over každú požiadavku cez AUTH() a obmedz cesty na prihlásených alebo anonymných používateľov prefixmi + a -.

authroutingsecurity

Deklaruj cestu priamo v akcii

Daj cestu do voľby route v NEWACTION a maj URL, validáciu a kód na jednom mieste.

actionsrouting

Prihlasuj používateľov vstavanou session autentifikáciou

Odovzdaj AUTH() objekt s voľbami a získaš podpísané session cookies, úložisko sessions a odhlásenie bez písania infraštruktúry.

authsessionssecurity

Volaj akciu z vlastného kódu

Použi ACTION() na spustenie akcie z časovača, úlohy alebo inej akcie s vlastným payloadom, query a používateľom.

actions

Zreťaz viac akcií v jednej ceste

Vymenuj viac akcií za --> a spusti ich postupne nad rovnakým payloadom; označ, ktorá odpovie pomocou (response).

actionsrouting

Pridaj middleware k ceste

Zaregistruj middleware cez MIDDLEWARE() a pripoj ho k cestám príznakom #názov.

middlewareroutingsecurity

Vytvor chat cez WebSocket

Deklaruj cestu SOCKET, počúvaj správy a rozposielaj ich všetkým pripojeným klientom.

websocketrealtime

Pripoj sa k serveru WebSocket z Node

Použi WEBSOCKETCLIENT na otvorenie WebSocket spojenia z tvojej aplikácie, posielanie správ a reakciu na odpovede.

websocketrealtimeintegrations

Oddeľ kód pomocou udalostí

Vysielaj a počúvaj udalosti aplikácie cez EMIT(), ON(), ONCE() a OFF(), aby sa moduly nevolali priamo.

eventsarchitecture

Ukladaj a čítaj dáta vstavanou databázou NoSQL

Vkladaj a dopytuj dokumenty cez NOSQL() a sprístupni ich cez akcie, bez inštalácie databázy.

nosqldatabaseactions

Dopytuj databázu NoSQL

Filtruj, zoraďuj, stránkuj a vyberaj polia dokumentov cez where, in, between, search, sort, take, skip a fields.

nosqldatabasequeries

Aktualizuj a odstraňuj dokumenty NoSQL

Meň dokumenty cez update() a where(), mazaj ich cez remove() a zisti, koľko ich bolo dotknutých.

nosqldatabase

Prepínaj databázy cez API DATA

DATA adresuje tabuľku ako databáza/tabuľka, takže rovnaký kód dopytov funguje so vstavaným NoSQL aj s inými databázami.

databasenosqlquerybuilder

Ukladaj hodnoty do vyrovnávacej pamäte

Ukladaj hodnoty cez CACHE.set() s expiráciou, čítaj ich cez CACHE.get() a maž cez remove() alebo reset().

cacheperformance

Ukladaj malé nastavenia cez MEMORIZE

Maj na disku JSON objekt, ktorý prežije reštart, pre počítadlá a nastavenia, ktoré nepotrebujú databázu.

storagesettings

Generuj unikátne id a hashe

Vytváraj id cez UID() a GUID() a hashe cez HASH() a vedz, ktoré kde použiť.

utilitiesidssecurity

Ukladaj pomalé výsledky na disk cez FILECACHE

Použi FILECACHE() na jednorazový výpočet výsledku a jeho opätovné použitie zo súboru po určité obdobie, aj po reštarte.

cacheperformancefiles

Ukladaj nahrané súbory cez FILESTORAGE

Ukladaj nahrané súbory do spravovaného úložiska cez file.fs() a posielaj ich späť cez $.filefs().

filesuploadstorage

Vykresli view s layoutom

Vykresli HTML view s modelom, prejdi dáta cyklom a pošli hodnoty do layoutu.

viewslayouttemplates

Používaj podmienky a escapovanie vo view

Vetv cez @{if}, @{else} a @{fi} a vyber medzi escapovaným výstupom @{value} a surovým HTML @{!value}.

viewstemplates

Prechádzaj polia a objekty vo view

Opakuj značkovanie cez @{foreach} pre polia a objekty a používaj index aktuálnej položky.

viewstemplates

Vkladaj view a zdroje

Opakovane používaj značkovanie cez @{view()} a pridávaj skripty a štýly cez @{import()}.

viewstemplatesassets

Napĺňaj sekcie layoutu z view

Deklaruj sekciu vo view cez @{section} a vypíš ju v layoute cez @{section('name')}; pre požiadavku môžeš zvoliť aj iný layout.

viewslayouttemplates

Pridaj helpery do view a čítaj config vo view

Zaregistruj funkcie v DEF.helpers, aby sa dali volať z view, a čítaj hodnoty configu cez @{'%key'}.

viewstemplatesconfig

Konvertuj Markdown na HTML

Použi prototyp String.markdown() na vykreslenie Markdown textu do HTML, pre obsah uložený používateľmi alebo v súboroch.

contentmarkdown

Generuj text pomocou šablón Tangular

Použi Tangular.render() na vyplnenie šablón e-mailov, dokumentov a správ s podmienkami, cyklami a helpermi.

templatescontent

Renderujte šablóny z textu, súborov a URL pomocou TEMPLATE

Použite TEMPLATE() na renderovanie šablóny Tangular, ktorá je textom, súborom z priečinka šablón alebo URL, s vlastnými helpermi a predvoleným modelom.

templatescontenttangular

Porovnajte dva zoznamy pomocou DIFFARR: čo pridať, aktualizovať a odstrániť

Použite DIFFARR() na porovnanie položiek uložených v databáze s položkami formulára a získajte tie, ktoré treba pridať, aktualizovať a odstrániť.

utilitiesarraysforms

Query Builder: DB() a NEWDB() s vlastnou databázou

Vytvorte dotazy s DB(.find().where().sort() a nechajte vodiča registrovaného s NEWDB() ich spustiť, zatiaľ čo registrovaný vodič implementuje prevádzky databáz.

databasequerybuilder

Nastav aplikáciu súborom config

Ukladaj nastavenia do súboru config a čítaj ich cez CONF.

configsettings

Šifruj a dešifruj dáta kľúčom

Premeň objekty na nepriehľadné tokeny cez ENCRYPT() a prečítaj ich cez DECRYPT(), pre podpísané odkazy a krátkodobé tokeny.

securitycrypto

Volajte externé služby cez API() a drivery NEWAPI()

Zaregistrujte driver pre službu pomocou NEWAPI() a volajte ho z akcií pomocou API(name, schema, data) s rovnakým štýlom callbacku, chyby a promise ako query builder.

apiservicesintegrations

Rozprávajte sa s jazykovými modelmi pomocou AIMODEL(), NEWAIMODEL() a AIPARSER()

Vytvorte žiadosť o rozhovor pomocou AIMODEL(), nechajte ovládač zaregistrovaný v NEWAIMODEL() poslať ju poskytovateľovi a prečítajte si streamované odpovede pomocou AIPARSER().

aillmintegrations

Obmedz neúspešné pokusy cez BLOCKED

Počítaj pokusy podľa IP adresy cez BLOCKED() a po dosiahnutí limitu odpovedaj 429, pre prihlásenia a obnovu hesla.

securityrate-limiting

Malí globálni pomocníci: MAIN, REPO, FUNC, NOW, CLONE, COPY, QUERIFY a PROMISIFY

Použite aplikácie globály, dátumy, hlboké kópie, dotazné riadky a sľubných pomocníkov.

globalsutilitieshelpers

Zbierajte chyby cez ErrorBuilder, zaznamenávajte ich cez ERROR() a vedťe auditnú stopu cez AUDIT()

Odpovedajte naraz s viacerými chybami pomocou ErrorBuilder, odpoveď SUCCESS(), ako ERROR() zaznamenáva zlyhania a ako AUDIT() pripisuje do súboru, kto čo urobil.

errorsloggingaudit

Oneskorte prácu pomocou setTimeout2() a clearTimeout2()

Použite setTimeout2() na jednorazové spustenie funkcie po tom, čo prestanú prichádzať volania; predchádzajúci časovač s rovnakým id sa nahradí, a zrušte ho cez clearTimeout2().

timersdebounceutilities

Tokeny viazané na prehliadač cez ENCRYPTREQ() a DECRYPTREQ()

Zašifrujte hodnotu spolu s user agentom (a voliteľne s IP adresou) požiadavky a prečítajte ju späť iba z toho istého klienta.

securityencryptiontokens

Zálohujte priečinok cez BACKUP() a RESTORE() a spúšťajte príkazy cez SHELL()

Zbaľte adresár do jedného súboru a znova ho rozbaľte pomocou BACKUP() a RESTORE() a spustite príkaz shellu v priečinku projektu pomocou SHELL().

backupshellfiles

Prepnite aplikáciu do údržby pomocou PAUSESERVER()

Pozastavte server podľa názvu, aby každá požiadavka dostala stránku 503, obnovte ho a majte na pamäti, že bez druhého argumentu volanie prepína stav.

maintenanceserveravailability

Obchodné pravidlá ako text cez NEWMACRO()

Skompilujte malé pravidlá napísané v jednoduchom jazyku (IF, ELSE, AND, OR, RETURN, volania helperov) do funkcie, ktorú spustíte s modelom, takže pravidlá môžu žiť v súbore alebo v databáze.

macrosrulesscripting

Servíruj statické súbory z priečinka public

Súbory v adresári public sa servírujú automaticky, bez potreby cesty.

staticfiles

Volajte inú adresu cez AJAX() zo servera

Použite AJAX() na volanie HTTP adresy s JSON telom a získanie spracovanej odpovede, ako promise alebo s callbackom, a zistite, čo sa stane s chybami a XML.

httprequestsajax

Volaj iné HTTP API cez RESTBuilder

Posielaj požiadavky GET a POST inej službe, nastav hlavičky a timeout a čítaj stav a spracovanú odpoveď.

integrationshttprestbuilder

Uvoľnite stream po jeho skončení pomocou CLEANUP()

Použite CLEANUP() na zničenie streamu hneď po jeho dokončení alebo zlyhaní, aby nezostali otvorené deskriptory súborov, s callbackom alebo ako promise.

streamsfilescleanup

Prelož view do viacerých jazykov

Označ texty vo view cez @(...) a preklady daj do resource súborov, ktoré vyberá LOCALIZE().

localizationi18nviews

Spúšťajte kód podľa plánu pomocou CRON

Zaregistrujte funkciu cez CRON() a päťpoložkový cron riadok a zistite, kedy sa kontrola vykonáva a ako úlohu odstrániť.

cronschedulerjobs

Spúšťajte náročnú prácu vo vlákne alebo v podriadenom procese

Použite NEWTHREAD() na spustenie worker vlákna, posielajte mu správy a čítajte odpovede bez blokovania hlavného procesu.

workerthreadperformance

Zdieľajte niekoľko pracovných vlákien cez NEWTHREADPOOL()

Spustite pevný počet workerov, požičajte si jedného cez pool.exec(), keď je práca, vráťte ho cez release() a nechajte ostatné úlohy čakať na voľného workera.

workerthreadpoolperformance

Volajte iné servery cez REQUEST a ukladajte súbory cez DOWNLOAD

Použite REQUEST() na nízkoúrovňové HTTP volania s plnou kontrolou nad metódou, hlavičkami, query a telom a DOWNLOAD() na stiahnutie vzdialeného súboru na disk.

httprequestdownload

Odoslanie e-mailu z pohľadu

Nastavte SMTP v súbore config, vykreslite pohľad ako telo správy cez MAIL() a odošlite hotové HTML cez HTMLMAIL().

mailsmtpemail

Prispôsobte stránky 404 a 401

Zaregistrujte obslužné funkcie ROUTE('#404') a ROUTE('#401') na nahradenie vstavaných chybových stránok a spustite ich sami cez $.fallback().

errors404routing

Pošlite si správu cez LOGMAIL()

Odošlite obyčajný text alebo JSON na adresu bez šablóny, pre logy a upozornenia, cez rovnaké nastavenia SMTP ako MAIL().

mailsmtplogging

Odosielajte súbory a streamy klientovi

Servírujte súbor z disku cez $.file(), vynúťte názov pri sťahovaní, posielajte generovaný obsah cez $.stream() a odpovedzte 404, keď súbor neexistuje.

filesdownloadstream

Presmerovanie požiadaviek na iný server

Použite PROXY() na priradenie prefixu URL k cieľovému serveru, zvoľte spôsob kopírovania cesty a $.proxy() na presmerovanie jednej trasy.

proxygatewayintegrations

Sprístupnite lokálny server cez tunel pomocou PROXYSERVER() a PROXYCLIENT()

Nechajte server Total.js s verejnou adresou presmerovať požiadavky na program, ktorý beží iba na súkromnom stroji, cez WebSocket tunel, ktorý otvorí súkromná strana.

proxytunnelwebsocketintegrations

Chráňte formuláre a požiadavky tokenmi CSRF

Vytvorte token cez $.csrf(), pošlite ho spolu s požiadavkou a overte ho v middleware, aby sa požiadavky z iných stránok odmietli.

securitycsrfmiddleware

Zoskupte akcie do schémy a opätovne používajte definície inputu

Použite NEWSCHEMA() na deklarovanie súvisiacich akcií pod jedným názvom a zdieľajte definíciu inputu medzi akciami pomocou súboru v jsonschemas/.

schemaactionsvalidation

Zostavte spracovateľský reťazec pomocou transforms

Zaregistrujte viac krokov pod jedným názvom cez NEWTRANSFORM() a nechajte hodnotu prejsť nimi v poradí cez TRANSFORM().

transformpipeline

Výmena správ cez Total Messaging Service

Zapnite WebSocket endpoint TMS a nechajte externých klientov prijímať publikované správy, posielať správy vašej aplikácii a volať jej funkcie.

tmspublishsubscribewebsocketmessaging

Vytvorte kompletný REST zdroj pomocou akcií

Deklarujte akcie query, read, insert, update, patch a remove nad databázou NoSQL, s validáciou, kódom 404 pre neexistujúce záznamy a trasami, ktoré priraďujú každú HTTP metódu.

actionscrudrestnosql

Nastavte trasu WebSocket pomocou príznakov, autentifikácie a parametrov

Zvoľte typ správ cez @text alebo @binary, vyžadujte prihláseného používateľa prefixom +, overte token CSRF cez @csrf a čítajte parametre URL v trasách SOCKET.

websocketrealtimesecurity

Minifikácia a spájanie CSS, JavaScriptu a HTML

Statické súbory a odpovede HTML sa minifikujú automaticky; použite MERGE() na servírovanie viacerých súborov ako jedného a nastavenia $minify na vypnutie.

performancecssjavascripthtmlminification

Zmena veľkosti a konverzia obrázkov

Spracujte obrázky cez Image.load(), reťazte operácie zmeny veľkosti, orezania a formátu, uložte výsledok, zmerajte jeho rozmery a servírujte náhľady cez $.image().

imagesthumbnailsgraphicsmagick

Skontrolujte číslové hranice, namiesto toho, aby ste si uvedomili úplnú núdzu

Skontrolujte Int, SmallInt, TinyInt a Number2 s domácimi kompaktnými schémami vrátane frakčných hodnôt, nulových a out-of-range vstupov.

validationschemanumbersboundaries

Používajte vstavané pomocné funkcie pre string, number, date a array

Total.js rozširuje String, Number, Date a Array o pomocné funkcie pre slugy, hashe, formátovanie, parsovanie, zoskupovanie a vyhľadávanie a ponúka U.extend() a U.clone() pre objekty.

utilitieshelpersstringarraydate

Zaznamenajte udalosti auditu akcie pomocou natívnej zásuvky auditu

Dodržujte možnosť auditu a explicitné volania $.audit() bez toho, aby ste kontaktovali protokolovaciu službu alebo písali citlivý vstup do protokolu aplikácie.

actionsauditsecurity

Beh v režime debug a release

Možnosti Total.run() volia medzi režimom debug a release; režim čítajte z DEBUG a trasy obmedzte na jeden režim pomocou @debug a @release.

deploymentdebugreleaseenvironment

Testujte aplikáciu vstavaným spúšťačom testov

Napíšte test.js, ktorý spustí aplikáciu, zaregistruje testy cez Test.push(), výsledky kontroluje cez Test.print() a pri zlyhaní skončí s nenulovým kódom.

testingci

Použite všetky CPU kódy v klastrovom režime

Začnite niekoľko pracovných procesov za jedným portom s možnosťou klastru Total.run(), a viete, čo je medzi nimi zdieľané a čo nie.

clusterperformancedeployment

Načítajte modul JavaScriptu z URL cez IMPORT()

Stiahnite súbor s JavaScriptom z adresy, uložte ho do priečinka tmp, urobte require a použite to, čo exportuje; druhé volanie ho už nesťahuje znova.

modulesdownloaddependencies

Zostavte tok komponentov cez Flow.load() a spustite ho cez exec()

Opíšte FlowStream ako komponenty a spojenia medzi nimi, načítajte ho v aplikácii, pošlite ním správu a prečítajte odpoveď a zmeňte konfiguráciu komponentu počas behu.

flowflowstreamcomponentsautomation

Otestujte komponent Flow samostatne cez Flow.test()

Načítajte jeden komponent do vlastného toku, pošlite mu správu z kódu a prečítajte, čo posiela na svoje výstupy, bez zostavovania celého toku.

flowflowstreamcomponentstests

Volajte program v Pythone, ktorý stále beží, cez PYPELINE()

Spustite skript Pythonu z aplikácie, posielajte mu správy JSON cez socket a prijímajte jeho odpovede; ak skript zanikne, reštartuje sa.

pythonpypelineintegrationsai

Enum a string formát validácie hranice

Spustiť pozitívne a negatívne kompaktné schémy kontroly pre enum, farby, Base64, Zip, ikony, JSON a IP formáty.

total5reference

TotalAPI a Componentator servisné hranice

Skontrolujte, či je dotknutý oddiel TotalAPI a Componentator lokálne, bez toho, aby ste vykonali externé servisné hovory.

total5reference

QueryBuilder operácie, filtre a zmluvy s vodičom

Inšpektujte domáce možnosti DB a NEWDB, výsledky, zlyhanie, chyby a tvary filtra bez toho, aby ste zmätený staviteľ s ovládačom databáz.

total5reference

Kompilácia a spustenie domáceho servera

Kompilujte spoľahlivú zložku Total.js HTML, vytvorte príklad, validujte správy, prepojte ju a uvoľnite jej zdroje.

total5reference

Ovládací telefón, manuálna autorizácia a podmienené odpovede

Vykonávať jsonstring, reagovať, vykonať, úspešne, povoliť, prispôsobiť a naposledy upravené spracovanie.

total5reference

Možnosti prepravy akcie a výslovné publikovanie TMS

Testovať csrf, šifrovať, komprimovať a publikovať proti skutočné HTTP a TMS namiesto predpokladu, že metadata vynakladajú správanie.

total5reference

Invalidované štandardné cache s Touch

Služba a úprava dočasného statického súboru, odstránenie jeho skryté zastúpenie a odstránenia skryté 404 záznamy.

total5reference

OPENCLIENT RPC, udalosti a zdieľané spojenia

Cvičiť OPENCLIENT s lokálnou protokolovou fixáciou, vrátane inicializácie, korešpondencie callback, časového výstupu a odstránenia logického klienta.

total5reference

Nahrať súbory FlowStream a vykonať izolované pracovníkov

Spustiť rovnaký dôveryhodný FlowStream schémy ako pracovné drôty a detský proces, nahrať súbory .flow a odstrániť prípady.

total5reference

Akčný životný cyklus, rozšírenie výsledkov a správcovia strážcov

Vykonávajte oninput, onoutput, extend, sa a su s platnými, neplatnými a neúspešnými akciami.

total5reference

Skutočný SQL s native QueryBuilder a SQLite transakcie

Registrácia obmedzeného ovládača SQLite, spustenie parametrizovaného CRUD a overenie záväzku, obmedzenie zlyhania a vrátenie proti databáze podporovanej súborom.

total5reference

Vyplňte aplikácie a vyhnite sa prekvapeniam balíka

Spustiť LOAD v samostatnom procese a overiť NPMINSTALL opätovné použitie už dostupného balíka bez prístupu k sieti.

total5reference

Dotaz na skutočný lokálny adresár LDAP

Dopytujte izolovanú inštanciu OpenLDAP a overte výsledok väzby celkovo5 0.0.19.

total5reference

Súbory aplikácie balenia ako balenie Total.js

Vytvorte miestny balík, naložte jeho definície prostredníctvom rámového štartovacieho nabíjača a overte extrakciu do .src.

total5reference

Vlastné vyčistenie nahraných súborov a vytvorenie odkazov na dopyty

Overte predvolené vyčistenie nahrávania, automatické vymazanie (nepravda), explicitné vymazanie a nahradenie dopytu href.

total5reference