ForgeTotal.js 5
cs

Total.js 5 (backend)

Trasy, akce, schémata, databáze, WebSocket, pohledy a vše, co běží na serveru.

ReceptŠtítky

Validace JSON těla pomocí akce

Definuj vstupní schéma akce a nech Total.js zamítat neplatné požadavky dřív, než se spustí tvůj kód.

routingactionsvalidation

Zpřístupnění akcí přes jeden API endpoint

Deklaruj endpointy ROUTE('API ...'), aby klient mohl volat mnoho akcí přes POST {schema, data} na jedné URL.

routingapiactions

Čtení parametrů URL v trase

Deklaruj dynamické segmenty jako {id} v trase a čti je z $.params.

routingparams

Zachycení mnoha URL trasou se zástupným znakem

Ukonči trasu znakem *, abys zachytil vše pod danou cestou, a pro výjimky ponech specifické trasy.

routing

Obsluha každé HTTP metody

Deklaruj trasy pro GET, POST, PUT, PATCH a DELETE a čti metodu z $.method.

routinghttp

Omezení trasy pomocí flagů

Přidej @flagy jako @json, @xml nebo @upload, aby trasa odpovídala jen požadavkům, pro které je určena.

routingflags

Čtení query stringu a těla požadavku

Použij $.query pro parametry URL a $.body pro JSON nebo data formuláře v handleru trasy.

routingrequest

Omezení velikosti payloadu a timeoutu trasy

Připoj k trase <1kb nebo <10s a omez velikost požadavku nebo čas, který může handler zabrat.

routingsecuritylimits

Deklarace typovaných parametrů trasy v akci

Použij volbu params v NEWACTION, aby Total.js ověřil parametry URL dřív, než se spustí tvůj kód.

actionsroutingvalidation

Výběr způsobu odpovědi

Posílej JSON, HTML, čistý text, XML, přesměrování, prázdné odpovědi nebo binární data z handleru trasy.

routingresponse

Čtení hlaviček a práce s cookies

Čti hlavičky požadavku z $.headers, čti a zapisuj cookies přes $.cookie() a nastavuj hlavičky odpovědi.

routingheaderscookies

Přijímání nahrávání souborů

Přijímej multipart/form-data s flagem @upload a čti nahrané soubory z $.files.

routinguploadfiles

Povolení požadavků z jiných originů přes CORS

Zavolej CORS(), aby tvé trasy mohl z prohlížeče používat jeden origin, více originů nebo každý origin.

securitycorsrouting

Vykreslení pohledu bez psaní handleru

Trasa bez handleru vykreslí pohled pojmenovaný podle své URL, nebo pohled, který uvedeš.

routingviews

Vyberte správný typ vstupu pro akci

Vyberte typy vstupu, parametrů, poptávky a definice výstupu, včetně konverzí a zamítnutých hodnot.

actionsvalidationtypes

Validace query stringu v akci

Deklaruj query v NEWACTION pro validaci a převod parametrů URL a čti vyčištěné hodnoty z $.query.

actionsvalidationquery

Filtrování odpovědi akce pomocí output

Deklaruj output, aby z akce odešla jen uvedená pole, například aby nikdy neunikl hash hesla.

actionssecurity

Vyžadování uživatele nebo oprávnění v akci

Použij volby user a permissions v NEWACTION, aby autorizace byla u akce a ne v každé trase.

actionsauthsecurity

Ochrana tras pomocí AUTH

Ověř každý požadavek přes AUTH() a omez trasy na přihlášené nebo anonymní uživatele prefixy + a -.

authroutingsecurity

Deklarace trasy uvnitř akce

Dej trasu do volby route v NEWACTION a měj URL, validaci a kód na jednom místě.

actionsrouting

Přihlašování uživatelů vestavěnou session autentizací

Předej AUTH() objekt s volbami a získáš podepsané session cookies, úložiště sessions a odhlášení bez psaní infrastruktury.

authsessionssecurity

Volání akce z vlastního kódu

Použij ACTION() ke spuštění akce z časovače, úlohy nebo jiné akce s vlastním payloadem, query a uživatelem.

actions

Zřetězení více akcí v jedné trase

Vyjmenuj více akcí za --> a spusť je postupně nad stejným payloadem; pomocí (response) označ, která odpoví.

actionsrouting

Přidání middleware k trase

Zaregistruj middleware přes MIDDLEWARE() a připoj ho k trasám flagem #name.

middlewareroutingsecurity

Stavba chatu přes WebSocket

Deklaruj trasu SOCKET, poslouchej zprávy a rozesílej je všem připojeným klientům.

websocketrealtime

Připojení k serveru WebSocket z Node

Použij WEBSOCKETCLIENT k otevření WebSocket spojení z tvé aplikace, posílání zpráv a reakci na odpovědi.

websocketrealtimeintegrations

Oddělení kódu pomocí událostí

Vysílej a poslouchej události aplikace přes EMIT(), ON(), ONCE() a OFF(), aby se moduly nevolaly přímo.

eventsarchitecture

Ukládání a čtení dat ve vestavěné databázi NoSQL

Vkládej a dotazuj dokumenty přes NOSQL() a zpřístupni je přes akce, bez instalace jakékoli databáze.

nosqldatabaseactions

Dotazování databáze NoSQL

Filtruj, řaď, stránkuj a vybírej pole dokumentů přes where, in, between, search, sort, take, skip a fields.

nosqldatabasequeries

Aktualizace a odstraňování dokumentů NoSQL

Měň dokumenty přes update() a where(), mazej je přes remove() a zjisti, kolik jich bylo dotčeno.

nosqldatabase

Přepínání databází přes API DATA

DATA adresuje tabulku jako databáze/tabulka, takže stejný kód dotazů funguje s vestavěným NoSQL i s dalšími databázemi.

databasenosqlquerybuilder

Ukládání hodnot do paměti

Ukládej hodnoty přes CACHE.set() s expirací, čti je přes CACHE.get() a mazej přes remove() nebo reset().

cacheperformance

Trvalé ukládání malých nastavení přes MEMORIZE

Měj na disku JSON objekt, který přežije restart, pro počítadla a nastavení, která nepotřebují databázi.

storagesettings

Generování jedinečných id a hashů

Vytvářej id přes UID() a GUID() a hashe přes HASH() a věz, které kde použít.

utilitiesidssecurity

Ukládání pomalých výsledků na disk přes FILECACHE

Použij FILECACHE(), abys výsledek spočítal jednou a po určitou dobu ho znovu používal ze souboru, i po restartu.

cacheperformancefiles

Ukládání nahraných souborů přes FILESTORAGE

Ukládej nahrané soubory do spravovaného úložiště souborů přes file.fs() a posílej je zpět přes $.filefs().

filesuploadstorage

Vykreslení pohledu s layoutem

Vykresli HTML pohled s modelem, procházej data a předávej hodnoty do layoutu.

viewslayouttemplates

Podmínky a escapování v pohledech

Větvi přes @{if}, @{else} a @{fi} a vybírej mezi escapovaným výstupem @{value} a surovým HTML @{!value}.

viewstemplates

Procházení polí a objektů v pohledech

Opakuj značkování přes @{foreach} pro pole a objekty a používej index aktuální položky.

viewstemplates

Vkládání pohledů a zdrojů

Znovu používej značkování přes @{view()} a přidávej skripty a styly přes @{import()}.

viewstemplatesassets

Plnění sekcí layoutu z pohledu

Deklaruj sekci v pohledu přes @{section} a vypiš ji v layoutu přes @{section('name')}; pro požadavek můžeš zvolit i jiný layout.

viewslayouttemplates

Přidání helperů do pohledů a čtení configu v pohledech

Zaregistruj funkce v DEF.helpers, aby šly volat z pohledů, a čti hodnoty configu přes @{'%key'}.

viewstemplatesconfig

Převod Markdownu na HTML

Použij prototyp String.markdown() k vykreslení Markdown textu do HTML, pro obsah uložený uživateli nebo v souborech.

contentmarkdown

Generování textu pomocí šablon Tangular

Použij Tangular.render() k vyplnění šablon e-mailů, dokumentů a zpráv s podmínkami, cykly a helpery.

templatescontent

Renderujte šablony z textu, souborů a URL pomocí TEMPLATE

Použijte TEMPLATE() k vykreslení šablony Tangular, která je textem, souborem ze složky šablon nebo URL, s vlastními helpery a výchozím modelem.

templatescontenttangular

Porovnejte dva seznamy pomocí DIFFARR: co přidat, aktualizovat a odebrat

Použijte DIFFARR() k porovnání položek uložených v databázi s položkami formuláře a získejte ty, které je třeba přidat, aktualizovat a odebrat.

utilitiesarraysforms

Query Builder: DB() a NEWDB() s vlastní databázi

Vytvořte dotazy s DB().find().where().sort() a nechte řidiče registrovaného s NEWDB() je spustit, zatímco registrovaný řidič implementuje operaci databáze.

databasequerybuilder

Konfigurace aplikace souborem config

Měj nastavení v souboru config a čti je přes CONF.

configsettings

Šifrování a dešifrování dat klíčem

Měň objekty na neprůhledné tokeny přes ENCRYPT() a čti je zpět přes DECRYPT(), pro podepsané odkazy a krátkodobé tokeny.

securitycrypto

Volejte externí služby přes API() a ovladače NEWAPI()

Zaregistrujte ovladač služby pomocí NEWAPI() a volejte jej z akcí pomocí API(name, schema, data) ve stejném stylu callbacku, chyby a promise jako query builder.

apiservicesintegrations

Rozhovor s jazykovými modely s AIMODEL(), NEWAIMODel() a AIPARSER()

Vytvořte žádost o chatování s AIMODEL(), nechte řidiče registrovaného s NEWAIMODL(), pošlete ji poskytovateli a přečtěte si streamované odpovědi s AIPARSER().

aillmintegrations

Omezení neúspěšných pokusů přes BLOCKED

Počítej pokusy podle IP adresy přes BLOCKED() a po dosažení limitu odpovídej 429, pro přihlášení a obnovu hesla.

securityrate-limiting

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

Použijte globály aplikace, data, hluboké kopie, dotazní řádky a slibující pomocníky.

globalsutilitieshelpers

Shromažďujte chyby pomocí ErrorBuilder, zaznamenávejte je přes ERROR() a veďte auditní stopu přes AUDIT()

Odpovídejte více chybami najednou pomocí ErrorBuilder, odpovědi SUCCESS(), jak ERROR() zaznamenává selhání a jak AUDIT() připisuje do souboru, kdo co udělal.

errorsloggingaudit

Odkládejte práci pomocí setTimeout2() a clearTimeout2()

Použijte setTimeout2() ke spuštění funkce jednou poté, co přestanou přicházet volání; předchozí časovač se stejným id se nahradí, a zrušte jej pomocí clearTimeout2().

timersdebounceutilities

Tokeny vázané na prohlížeč pomocí ENCRYPTREQ() a DECRYPTREQ()

Zašifrujte hodnotu společně s user agentem (a volitelně IP adresou) požadavku a přečtěte ji zpět jen od stejného klienta.

securityencryptiontokens

Zálohujte složku pomocí BACKUP() a RESTORE() a spouštějte příkazy pomocí SHELL()

Zabalte adresář do jednoho souboru a znovu jej rozbalte pomocí BACKUP() a RESTORE() a spusťte příkaz shellu ve složce projektu pomocí SHELL().

backupshellfiles

Přepněte aplikaci do údržby pomocí PAUSESERVER()

Pozastavte server podle názvu, aby každý požadavek dostal stránku 503, obnovte jej a pamatujte, že bez druhého argumentu volání přepíná stav.

maintenanceserveravailability

Obchodní pravidla jako text pomocí NEWMACRO()

Zkompilujte malá pravidla napsaná v jednoduchém jazyce (IF, ELSE, AND, OR, RETURN, volání helperů) do funkce, kterou spustíte s modelem, takže pravidla mohou žít v souboru nebo v databázi.

macrosrulesscripting

Servírování statických souborů ze složky public

Soubory v adresáři public se servírují automaticky, bez potřeby trasy.

staticfiles

Volejte jinou adresu pomocí AJAX() ze serveru

Použijte AJAX() k volání HTTP adresy s tělem JSON a získání zpracované odpovědi, jako promise nebo s callbackem, a zjistěte, co se stane s chybami a XML.

httprequestsajax

Volání dalších HTTP API přes RESTBuilder

Posílej požadavky GET a POST jiné službě, nastav hlavičky a timeout a čti stav a zpracovanou odpověď.

integrationshttprestbuilder

Uvolněte stream po jeho skončení pomocí CLEANUP()

Použijte CLEANUP() ke zničení streamu hned po jeho dokončení nebo selhání, aby nezůstaly otevřené deskriptory souborů, s callbackem nebo jako promise.

streamsfilescleanup

Překlad pohledu do více jazyků

Označ texty v pohledech pomocí @(...) a překlady dej do souborů zdrojů, které vybírá LOCALIZE().

localizationi18nviews

Spouštějte kód podle plánu pomocí CRON

Zaregistrujte funkci přes CRON() a pětipoložkový cron řádek a zjistěte, kdy se kontrola provádí a jak úlohu odstranit.

cronschedulerjobs

Spouštějte náročnou práci ve vlákně nebo v podřízeném procesu

Použijte NEWTHREAD() ke spuštění worker vlákna, posílejte mu zprávy a čtěte odpovědi bez blokování hlavního procesu.

workerthreadperformance

Sdílejte několik pracovních vláken pomocí NEWTHREADPOOL()

Spusťte pevný počet workerů, půjčte si jednoho přes pool.exec(), když je práce, vraťte jej přes release() a nechte ostatní úlohy čekat na volného workera.

workerthreadpoolperformance

Volejte jiné servery přes REQUEST a ukládejte soubory přes DOWNLOAD

Použijte REQUEST() pro nízkoúrovňová HTTP volání s plnou kontrolou nad metodou, hlavičkami, query a tělem a DOWNLOAD() ke stažení vzdáleného souboru na disk.

httprequestdownload

Odeslání e-mailu z pohledu

Nastavte SMTP v souboru config, vykreslete pohled jako tělo zprávy přes MAIL() a odešlete hotové HTML přes HTMLMAIL().

mailsmtpemail

Přizpůsobte stránky 404 a 401

Zaregistrujte obslužné funkce ROUTE('#404') a ROUTE('#401') pro nahrazení vestavěných chybových stránek a spusťte je sami přes $.fallback().

errors404routing

Pošlete si zprávu pomocí LOGMAIL()

Odešlete prostý text nebo JSON na adresu bez šablony, pro logy a upozornění, přes stejné nastavení SMTP jako MAIL().

mailsmtplogging

Odesílejte soubory a streamy klientovi

Servírujte soubor z disku přes $.file(), vynuťte název při stahování, posílejte generovaný obsah přes $.stream() a odpovězte 404, když soubor chybí.

filesdownloadstream

Přesměrování požadavků na jiný server

Použijte PROXY() k přiřazení prefixu URL k cílovému serveru, zvolte způsob kopírování cesty a $.proxy() k přesměrování jedné trasy.

proxygatewayintegrations

Zpřístupněte lokální server přes tunel pomocí PROXYSERVER() a PROXYCLIENT()

Nechte server Total.js s veřejnou adresou přeposílat požadavky programu, který běží jen na soukromém stroji, přes WebSocket tunel, který otevře soukromá strana.

proxytunnelwebsocketintegrations

Chraňte formuláře a požadavky tokeny CSRF

Vytvořte token přes $.csrf(), pošlete ho s požadavkem a ověřte ho v middleware, aby se požadavky z jiných stránek odmítly.

securitycsrfmiddleware

Seskupte akce do schématu a opakovaně používejte definice inputu

Použijte NEWSCHEMA() k deklaraci souvisejících akcí pod jedním názvem a sdílejte definici inputu mezi akcemi pomocí souboru v jsonschemas/.

schemaactionsvalidation

Sestavte zpracovatelský řetězec pomocí transforms

Zaregistrujte více kroků pod jedním názvem přes NEWTRANSFORM() a nechte hodnotu projít jimi v pořadí přes TRANSFORM().

transformpipeline

Výměna zpráv přes Total Messaging Service

Zapněte WebSocket endpoint TMS a nechte externí klienty přijímat publikované zprávy, posílat zprávy vaší aplikaci a volat její funkce.

tmspublishsubscribewebsocketmessaging

Vytvořte kompletní REST zdroj pomocí akcí

Deklarujte akce query, read, insert, update, patch a remove nad databází NoSQL, s validací, kódem 404 pro chybějící záznamy a trasami, které přiřazují každou HTTP metodu.

actionscrudrestnosql

Nastavte trasu WebSocket pomocí příznaků, autentizace a parametrů

Zvolte typ zpráv přes @text nebo @binary, vyžadujte přihlášeného uživatele prefixem +, ověřte token CSRF přes @csrf a čtěte parametry URL v trasách SOCKET.

websocketrealtimesecurity

Minifikace a spojování CSS, JavaScriptu a HTML

Statické soubory a odpovědi HTML se minifikují automaticky; použijte MERGE() k servírování více souborů jako jednoho a nastavení $minify k vypnutí.

performancecssjavascripthtmlminification

Změna velikosti a převod obrázků

Zpracujte obrázky přes Image.load(), řetězte operace velikosti, ořezu a formátu, uložte výsledek, změřte jeho rozměry a servírujte náhledy přes $.image().

imagesthumbnailsgraphicsmagick

Zkontrolujte číselné hranice schématu namísto předpokladu celkové nucenosti

Zkontrolujte Int, SmallInt, TinyInt a Number2 s původními kompaktními schématy, včetně frakčních hodnot, nulových a out-of-range vstupů.

validationschemanumbersboundaries

Používejte vestavěné pomocné funkce pro string, number, date a array

Total.js rozšiřuje String, Number, Date a Array o pomocné funkce pro slugy, hashe, formátování, parsování, seskupování a vyhledávání a nabízí U.extend() a U.clone() pro objekty.

utilitieshelpersstringarraydate

Akční audity s nativním auditem

Sledujte možnost auditu a výslovně $.audit() volání bez kontaktu s logovací službou nebo psaní citlivého záznamu do aplikace.

actionsauditsecurity

Běh v režimu debug a release

Volby Total.run() vybírají mezi režimem debug a release; režim čtěte z DEBUG a trasy omezte na jeden režim pomocí @debug a @release.

deploymentdebugreleaseenvironment

Testujte aplikaci vestavěným spouštěčem testů

Napište test.js, který spustí aplikaci, zaregistruje testy přes Test.push(), výsledky kontroluje přes Test.print() a při selhání skončí s nenulovým kódem.

testingci

Použijte všechny CPU kódy v klastru

Začněte několik pracovních procesů za jedním portem s možností klastru Total.run(), a vědět, co je mezi nimi sdíleno a co není.

clusterperformancedeployment

Načtěte modul JavaScriptu z URL pomocí IMPORT()

Stáhněte soubor s JavaScriptem z adresy, uložte jej do složky tmp, načtěte jej přes require a použijte to, co exportuje; druhé volání jej už nestahuje znovu.

modulesdownloaddependencies

Sestavte tok komponent pomocí Flow.load() a spusťte jej pomocí exec()

Popište FlowStream jako komponenty a spojení mezi nimi, načtěte jej v aplikaci, pošlete jím zprávu a přečtěte odpověď a změňte konfiguraci komponenty za běhu.

flowflowstreamcomponentsautomation

Otestujte komponentu Flow samostatně pomocí Flow.test()

Načtěte jednu komponentu do vlastního toku, pošlete jí zprávu z kódu a přečtěte, co posílá na své výstupy, bez sestavování celého toku.

flowflowstreamcomponentstests

Volejte program v Pythonu, který stále běží, pomocí PYPELINE()

Spusťte skript Pythonu z aplikace, posílejte mu zprávy JSON přes socket a přijímejte jeho odpovědi; pokud skript zanikne, restartuje se.

pythonpypelineintegrationsai

Enums a string formát validace hranice

Spustit pozitivní a negativní kompaktní schéma kontroly pro enum, Color, Base64, Zip, ikony, JSON a IP formáty.

total5reference

TotalAPI a Componentator servisní limity

Zkontrolujte, zda je odvětví TotalAPI a Componentator lokálně zajištěno znovu, aniž byste prováděli externí hovory.

total5reference

QueryBuilder operace, filtry a řidičská smlouva

Zkontrolujte původní možnosti DB a NEWDB, výsledky, zkreslení, chyby a tvary filtru, aniž byste zaměnili stavitele s ovladačem databáze.

total5reference

Kompilace a spuštění domorodé složky serveru

Sbírejte důvěryhodnou složku Total.js HTML, vytvořte příklad, validujte zprávy, upravte je a uvolněte zdroje.

total5reference

Řídící volání, manuální pověření a podmíněné odpovědi

Provádět jsonstring, reagovat, provést, úspěšně, autorizovat, přizpůsobit a naposledy upravené zpracování.

total5reference

Akční dopravní možnosti a výslovné TMS publikování

Testovat csrf, šifrovat, komprimovat a publikovat proti skutečné HTTP a TMS namísto předpokladu, že metadata vynakládá chování.

total5reference

Invalidní uvolňovací režim statických cache s Touch

Servisovat a upravovat dočasný statický soubor, vymazat jeho skryté zastoupení a odstranit skryté 404 vstupů.

total5reference

OPENCLIENT RPC, události a sdílené připojení

Cvičit OPENCLIENT s lokální protokolovou fixou, včetně iniciace, callback korelace, časového odkladu a odstranění logického klienta.

total5reference

Přihlašování souborů FlowStream a provedení izolovaných pracovníků

Spustit stejnou důvěryhodnou schématu FlowStream jako pracovní vlákna a dětský proces, stáhnout soubory .flow a odstranit příklady.

total5reference

Akční životní cyklus, prodloužení výsledků a správci strážců

Cvičení oninput, onoutput, extend, sa a su s platnými, neplatnými a selhávajícími akcemi.

total5reference

Reálné SQL s native QueryBuilder a SQLite transakce

Registrace omezeného řidiče SQLite, spuštění parametrizovaného CRUD a ověřování závazků, omezení selhání a zpětné vazby proti databázi podporované souborem.

total5reference

Nabíjejte zdroje aplikace a vyhněte se překvapení balíčku

Spustit LOAD v samostatném procesu a ověřit NPMINSTALL opětovné použití již dostupného balíčku bez přístupu k síti.

total5reference

Vyhledejte místní adresář LDAP

Vyhledejte izolovanou příklad OpenLDAP a ověřte výsledek spojení v celkovém počtu 5 0.0.19.

total5reference

Soubory aplikace jako balíček Total.js

Vytvořte místní balíček, načte jeho definice prostřednictvím nákladu Startup a ověřte extrakci do .src.

total5reference

Své nahrané soubory čistí a vytváří dotazy odkazy

Zkontrolujte výchozí nahrávku, autoklear(false), explicitní jasné a href dotaz nahradit.

total5reference