- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Azonnali fotós kérdések órája
- Computex 2024: háznézőben a Montech asztalainál
- Milyen notebookot vegyek?
- Computex 2024: újfajta tápdizájn a Lian Li boszorkánykonyhájáról
- iPad topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Steam Deck
- Milyen videókártyát?
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
Hirdetés
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
-
UbiForward24 - Hosszabb játékmenet videón az Assassin's Creed Shadows
gp Sokak által a Japánban játszódó új rész az idei év egyik legjobban várt alkotása.
-
Computex 2024: újfajta tápdizájn a Lian Li boszorkánykonyhájáról
ph Az L alakú Edge széria három kapacitással közeleg, és a legszerényebb variánsa kap egy picit olcsóbb kiadást, ami levehető mesh hálóval jön.
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
tick
aktív tag
typescript esetén ki lehet valahogy kényszeríteni a runtime típus ellenőrzést vagy ez csak build meg compile alatt ilyen shiny?
Express request query paramétereket szeretném ellenőrizni hogy egy interface illik-e rá, de runtime alatt minden ellenőrzés eltűnikEverything that has a beginning... has an end
-
martonx
veterán
Nézd, a typescript javascriptté fordul, ami nem típusos nyelv (szerk. mielőtt valaki a fejemet veszi, pontosítok: nem erősen típusos), így elvárni, hogy futás közben is úgy viselkedjen, mint szerkesztés közben a typescript, elég naív elképzelés. Mindenesetre itt vannak workaroundok erre: [link] (gugli legelső találata volt)
[ Szerkesztve ]
Én kérek elnézést!
-
tick
aktív tag
válasz
martonx #6602 üzenetére
Értem hogy sima js lesz belőle és a hasznos dolgok nagyrésze el is tűnik. Azt reméltem hogy van valami compiler paraméter amin átsiklottam ami automatikusan hozzátenné a típus ellenőrzéseket.
Lényegében akkor minden egyes class esetén típusellenőrzést ugyanúgy meg kell csinálni minttha vanilla js lenne, illetve ha felhasználom egy másikban, akkor példányosítani kell. Valahogy így mint lent. (tudom hogy rossz példa) Vagy van jobb megoldás?
class Name {
name:string
constructor(str:string) {
if (typeof str !== 'string') {
throw new TypeError()
}
this.name = str
}
}
class Age {
age:number
constructor(n:number) {
if (typeof n !== 'number') {
throw new TypeError()
}
this.age = n
}
}
class Person {
name:Name
age:Age
constructor(i:IPerson) {
this.name = new Name(i.str)
this.age = new Age(i.n)
}
}
interface IPerson {
str: string,
n: number
}
console.log(process.argv[2])
let bar:IPerson = JSON.parse(process.argv[2])
let foo = new Person(bar)
console.log(foo)Everything that has a beginning... has an end
-
martonx
veterán
Amit belinkeltem thread-et ott mintha lettek volna workaround-ok, utólagos megoldások ezeknek a típusellenőrzéseknek a belegenerálására. Igen, ha neked tényleg ez kell, akkor valóban nincs más hátra, mint vanillajs-ként tekinteni a ts generált kimentére (mert hiszen az is).
Én kérek elnézést!
-
fordfairlane
veterán
Typescripthez nem értek, de az instanceof talán ebben az esetben is használható.
x gon' give it to ya
-
tick
aktív tag
válasz
martonx #6604 üzenetére
Köszönöm szépen. Csak proposalokat láttam az issueban. Van egy-két 3rd party package ami elvileg megoldaná a problémám, de annyira vad vizekre nem akarok evezni.
TypeScripttől függetlenül véleményt szeretnék kérni:
Express query paramétereit szeretném ellenőrizni. (REST) Van egy adag ami kötelező, meg egy másik adag opcionális. A többire pedig nem vagyok kíváncsi.
Ha mindet egyesével ellenőrzöm hogy kapott-e értéket, el lett-e küldve egyáltalán, megfelelő típusú-e, megfelel-e minden paraméternek stb., majd errort dobálok ha nem, akkor egy elég undorítóan hosszú fájlom lesz.
Ezt ti hogyan szoktátok kezelni? Van több ötletem is:
-Hagyni a fenébe, viszont sok ellenőrzés ismételhető lenne máshol is.
-Classokat létrehozni típusonként, majd mindet az előző postom alapján példányosítani, így ellenőrizve lesznek
-Szintén classok, de csak statikus validáló függvénnyelEverything that has a beginning... has an end
-
Jim-Y
veterán
Csinalni egy middleware-t ami ellenorzi. Aztan a route definicioban megadhatod, hogy milyen parameterek manadatory-k es , hogy azoknak milyen a tipusa. Ha a mandatory parameterek tipusa nem jo akkor a middleware nem engedi tovabb a requestet hanem logol, meg HTTP 403.
Pszeudokod: (majd egy masik hsz-ben mert keson kezdtem el szerkeszteni, pill)
[ Szerkesztve ]
-
Jim-Y
veterán
module.exports = [
// ========== CREATE ==========
{
path: '/api-endpoint',
method: 'post',
controller: 'api-endpoint-controller',
action: 'doSomething',
params: {
id: 'number',
name: 'string',
etc...
}
}
];module.exports.queryParamsValidator = function(types) {
return function (request, next) {
for ({ key, value } in request.queryParams) {
if (types[key] && !isTypeEquals(types[key], value)) {
return this.throw(403);
}
}
next();
}
}Persze ez nem egy mukodo kod, csak egy pszeudokod, de hatha segit.
-
martonx
veterán
Expresshez nem értek, de az MVC rendszerekben szokott előre kialakított szerver oldali validáció lennie out-of-the-box, azaz én a helyedben első körben utána olvasnék, hogy Expressben milyen szerver oldali validációs megoldások vannak alapból.
Ha pedig nincs benne, akkor ideje valami más MVC megoldás felé fordulni.Én kérek elnézést!
-
tick
aktív tag
válasz
martonx #6609 üzenetére
Köszönöm mindkettőtök válaszát, eszembe nem jutott valamiért hogy erre így rákeressek.
Végül a validator elnevezésű npm packaget találtam, ennek ötlete mentén megcsináltam a sajátom. Illetve amelyik classnál szükséges ott van egy static validate method, ami lefut a constructor elején is.Everything that has a beginning... has an end
-
tick
aktív tag
Ezt segítenétek kérlek megérteni? A function egy objectként működik és mégis van egy "default" értéke?Everything that has a beginning... has an end
-
gyurkikrisz
őstag
Egy meglévő ExpressJS webalkalmazás felhasználói felületét szeretném ReactJS alapokra átültetni.
Még az elején vagyok a tanulási folyamatnak, de ha jól értelmezem, akkor ennek az a "szabványos" módja, hogy az ExpressJS részt átalakítom egy REST API-vá, amivel egy külön ReactJS alkalmazás kommunikál? Ennyire elkell szeparálnom a backendet a frontendtől?
A tuning a kisfiúk alap órajele. | i5 6500
-
martonx
veterán
-
Zedz
addikt
Sziasztok,
Expresses alkalmazásokat hogyan szoktatok tesztelni? Mocha + Chai?
-
válasz
gyurkikrisz #6613 üzenetére
Általában ez szokott lenni igen. Egy api és egy különálló kliens.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Sziasztok! JS-t tanulgatok és akadt egy problémám. Custom dropdown komponenst kell létrehoznom, ami félig meddig sikerült is, de valamiért a buttonra kattintva csak egy pillanatra nyílik le a legördülő menü, majd eltűnik az éterben. Mi lehet az oka?
-
-
Zedz
addikt
Milyen szinten akarsz JS-t tanulni?
-
Zedz
addikt
Nem értem a problémát. A HTML rész kigenerálása valamilyen template enginnel (blade, pug, jinja, whatever) az egy dolog. Erre ráhúzni a fentebb linkelt CSS-t, megint más. Független a kettő egymástól.
MVC fejlesztés lesz a fő feladatom
Ez a kijelentés így hibás. Az MVC egyfajta logikai struktúra. Ez szintén független a témánktól.ehhez szükséges HTML, CSS, Bootsrap 3, jQuery, JS tudást kell felszednem
Pure CSS megoldás fentebb, de a Bootstrap is rendelkezik beépített dropdownnal. Az más kérdés, hogy ha jól emlékszem akkor ők JS-sel oldják meg, de szigorúan magány véleményem szerint a bootstrap semmilyen szempontból sem követendő példa.Milyen szinten akarsz JS-t tanulni?
Azért kérdeztem, mert ajánlottam volna olvasni valót. -
Jim-Y
veterán
En nem mondom, mint a tobbiek, hogy ne igy csinald. Ezt a feladatot kaptad igy csinald szepen meg, bar agyuval losz a verebre semmilyen dropdown a mai vilagban nem igy mukodik mint ahogy ezt csinalod. Ettol fuggetlenul kalapald valahogy ossze es utana kezdj el egy normalis eletszeru feladaton dolgozni.
Mondok 1-2 peldat:
1: js tanulasra -> irj egy backend-frontend alkalmazast. A backend legyen egy sima faek egyszerusegu REST szerver. express vagy koa peldaul. Ne csinaljon tobbet mint regisztraljon 1-2 endpointot es adjon vissza par adatot. A frontend legyen angular vagy react es ne csinaljon mast mint kommunikaljon a backenddel kerje el az adatot es jelenitsen meg belole egy chart-ot. Pl d3-al. Ez egy egyszeru kezdoknek is egy nap alatt veghez viheto feladat es erinti azokat a dolgokat amikkel nap mint nap fogsz talalkozni front-end fejlesztokent. AJAX, charting, FE framework stb..
2: css tanulasra -> csinalj egy olyan komponenst ami egy jobb oldali menu sort implemental. A kepernyo jobb oldalan teljes magassagban egy mondjuk 70 pixel szeles savban ikonokat tud tarolni, pont mint egy navigacios menu. A kihivas benne az, hogy ez a sav fix 70 pixel szeles legyen DE ha tobb ikont teszunk bele mint amennyi latszodna az aktualis bongeszo meretetol fuggoen akkor a lelogo ikonokat eltunteted (overflow:hidden) viszont ha raviszed az egeret a 70px szeles savra akkor baloldalon kinyilik a panel es lathatova valnak a nem latszodo ikonok.
Lehet nem ezeket fogod csinalni vegul, de szerintem ezek sokkal inkabb eletszeru feladatok mint egy dropdown implementalasa js-ben.
[ Szerkesztve ]
-
Zedz
addikt
which implements the model–view–controller (MVC) pattern
Idézet a linkedből. Nincs olyan, hogy "ilyen mvc". Ez ugyan az mint amit linkelte, totálisan más mint amiről amúgy beszélünk.Miért akarod mindenképp JS-sel megoldani? Mutasd meg a munkahelyden, hogy szebben sikerült megoldani, mint ahogy kérték.
ASP.NET MVC-től szintén független a Javascript. JS tudás nélkül is neki tudsz esni, tekintve, hogy maximum frontend oldalon fogod használni, aztán onnantól meg a szerver közel mindegy. By the way martonx kolléga az ASP.NET MVC guruja, ő többet tudna róla mesélni, hogy hogyan is kell hozzá fogni.
-
-
martonx
veterán
Asp.Net Core óta Asp.Net Core-al is lehet faék REST API-kat csinálni. Egy rakás ilyen micro servicem fut AWS Lambdában
A példáid teljesen jók, én viszont visszább lépénék párat. Először ES6-ot, (ES7-et) tanulnám, nagy hangsúlyt fektetve az npm-re (esetleg webpack, netán gulp). Ezekhez én még szerver oldalt se csinálnék, egy szimpla VS Code és npm light-server-el hostolnálm. Amikor ezek készség szinten mennek, akkor van értelme bármilyen értelmesebb szerver oldalt alájuk tenni.
Én kérek elnézést!
-
Metódus túlterhelésre mik a bevett szokások javascriptben? Hogyan valósítsak meg egy olyan functiont aminek 0 és 1 paraméterrel is működnie kell? Nem hozhatok létre két függvényt erre a célra.
-
válasz
fordfairlane #6636 üzenetére
Köszönöm. Az arguments-el sikerült megoldani.
-
Sziasztok! Adott egy saját komponens, aminek vannak publikus metodusai. jQuery objektummá kell konvertáljam, ami megy is
$drop = $(dropdown);
, viszont így az alap komponens metódusai elvesznek. Hogyan csináljak belőle úgy jQuery object-et, hogy közben megmaradnak a metódusai?$.extend
-el próbálkoztam, de nem jártam sikerrel -
Jim-Y
veterán
https://jsfiddle.net/bnrmss1j/1/
Ha nem ez volt a kerdes akkor meg csak siman jobban kell kerdezni ^^
[ Szerkesztve ]
-
DNReNTi
őstag
Sziasztok,
Szeretnem megoldani, hogy az alkalmazasok UI retegeben keletkezo exception-ok is visszakovethetoek legyenek, illetve akar valami alert is beallithato legyen ha kiugroan magas szamu hiba van. Hogyan lenne a legjobb megoldani azt, hogy barmilyen kivetel kovetkezik be, azt el tudjam kuldeni a szervernek? A barmilyet azert emeltem ki, mert peldaul az aszinkron hivasok hibai le vannak kezelve, nem torik el a UI, de szeretnem, hogy ettol fuggetlenul lassuk ezeket egy naploban es ha kell vissza tudjuk keresni mi tortent. Tapasztalat? Javaslatok? Koszi!
but without you, my life is incomplete, my days are absolutely gray
-
martonx
veterán
válasz
DNReNTi #6641 üzenetére
Mi főállásban New Relicet használjuk e célra.
Maszekban meg Azure-ozok, úgyhogy ott Application Insight a hívószó. Így ráadásul nem csak logolódnak a dolgok, de könnyen ki is értékelhető, hogy mikor mi történik, könnyen lehet alerteket definiálni stb...[ Szerkesztve ]
Én kérek elnézést!
-
martonx
veterán
AWS-hez képest kb. egy árban van. Van ami Azure-ban olcsóbb, van ami AWS-ben, de mintha általánosságban egy picivel mintha az Azure olcsóbb lenne.
Ami miatt maszekban Azure-t használok, hogy nagyon könnyen össze lehet havi 100 eurónyi díjat kalapozni, MPN-nel, akár csak egy Visual Studio Online regisztrációval, MSDN tagsággal.
Szimpla webapp hosztolásra viszont szvsz elég drága (erre persze az AWS, és bármi más nagy cloud is drága), cserébe baromi kényelmes, build automatizációkba könnyedén beilleszthető, bármeddig skálázható. Ha meg már úgy is van havi 100 eurónyi előfizum, akkor meg már annyira nem is fáj, hogy mibe kerül a hosztolás.
Illetve mostanában jelent meg a serverless (figyelem új buzzword az informatikában) hosztolás, amiben AWS jár az élen, de Azure-ban is kezd megjelenni. Ezzel amíg szinte nulla az oldalad terhelése, gyakorlatilag ingyen tudod hosztolni. Viszont ez olyan, mint egy kapu drog, mert mihelyst megugrik a terhelés, hirtelen a gatyádat is ki fogod fizetni nekik.Én kérek elnézést!
-
DNReNTi
őstag
válasz
martonx #6642 üzenetére
Itt is a New Relic lesz a vegallomas, de az mar a Node retegben implementalva van, igy csak annyit akarunk, ha a UI-on valami elszarja magat, pingeljen meg egy Node endpointot az adott hibaval, es a felhasznalo adataival, aztan a Node kuldi tovabb NR-be.
but without you, my life is incomplete, my days are absolutely gray
-
Zedz
addikt
válasz
martonx #6644 üzenetére
Lehet én vagyok az ostoba, de amikor próbáltam ezeket a 3rd party megoldások, mint pl Auth0 vagy egy adatbázis, 1 heti szívás után mindig ott lyukadtam ki, hogy a fene vigye el az egészet, meg amúgy is fizetős lesz X dolog után, inkább megírom magamnak.
Persze mindig kacérkodok a dologgal, aztán marad a jól bevállt vps és a saját váram építése.
-
martonx
veterán
Szerintem kevered a szezont a fazonnal. Az Azure / AWS / akármi nem egyenlő egyes 3rd party service-ekkel, mint pl . Auth0, sőt semmi közük nincs egymáshoz, hacsak annyi nem, hogy az Auth0 is futtatja valahol a szolgáltatását
Azaz, hogy az authentikációs rétegedet kiváltod-e Auth0-val vagy sem, annak semmi köze nincs ahhoz, hogy egyébként hol futtatod a komplett rendszert.
Felhős adatbázis pedig csak akkor buli, ha az alkalmazásod is ugyanott van a felhőben, ugyanabban az adatközpontban, különben a hálózati késleltetés miatt természetesen nagyon belassul az adatátvitel.Én kérek elnézést!
Új hozzászólás Aktív témák
- Politika
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- exHWSW - Értünk mindenhez IS
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Google Pixel topik
- Xbox Series X|S
- PlayStation 5
- Azonnali fotós kérdések órája
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen