>> Torej, s tem pa je dejal,
nekako enostavno Uvod v prototipe
in model JavaScript objekt.
Ne gremo za premik prestave malo govori
o bolj JavaScript na strežnik in Knjižna polica knjižnica
in povezava Knex knjižnica.
Torej, lahko dejansko samo ti -
če iščete Bookshelf.js bi moralo biti precej enostavno
da bi našli, bi moral biti prvi rezultat, in Knjižna polica
kot David omenili daje veliko strukture
okoli JavaScript predmetov in delo z njimi relacijsko
v relacijskih podatkovnih bazah.
Torej, veliko podobnimi značilnostmi kdo je pravzaprav zelo navdihnjena
z ORM Laravel kot tudi Backbone.js,
ki je sprednji konec MVC Knjižnica, ki vam omogoča,
strukturirati kodo, podoben temu, kar sem kazal
s primeri prototipi, kjer lahko -
namesto samo poljubno metanje razrede
o vaših pogledih tu in tam.
To vam daje modele in zbirke teh modelov
ki naj bi delovali kot nekako eno točko resnice
o podatkih vaša aplikacija.
In potem boste poslušali, kot tiste, modeli sprememb, ste rekli, v redu,
ponovno postane to predlogo tukaj in tale tukaj
in ne samo dodati razred tukaj, dodajte razred tam in nekako poberem
na selektorjev in da spiderweb v jQuery kode.
To daje bolj temelji razreda Struktura posameznih kosov,
vendar pomemben sestavni del da knjižnica modeli
ki imajo podobno strukturo za kaj polico modeli storiti.
Torej, če ste seznanjeni s Knjižna polica zelo si tudi
Precej seznanjeni z Backbone.js modelov,
in jaz bi priporočal ob pogled na to.
Torej, nekatere od glavnih značilnosti
da daje ste pravkar Sposobnost, da določi podatke o predmetu
poklicati puščati, ki vrne individualne zapise
od baze, ustvariti Odnosi podobnimi
s tem, kar ste obravnavali roku v Laravel
, kjer boste lahko rekli, Bolnik si mora postaviti metodo rekordno
in reči, to je osvojil rekord
kjer zapis predmet Ime tabele zdravstvenih evidenc.
Pa poglejmo.
Ima veliko - pripada -
Samo stvari, ki ste precej podobni -
Precej seznanjeni z že, ampak v JavaScript.
In pod pokrovom, za knjižno polico,
uporablja za poizvedbo graditelja imenovano Knex.js.
Torej, to je Knex, knexjs.org.
To je sklicevanje na igrači, če kdorkoli je kdaj igral s tem.
Ampak to vam omogoča, da - v podoben način, s jQuery,
si nekako ustvariti veriga različnih metod
da kličeš na vašem Podatkovna baza vrstica, tako da boste lahko -
si začel z besedami: Knex in ime tabele.
Tako, na primer, Knex uporabniki, Izberite stolpce, ki želite,
kje in imajo drugačen, če pogojnike in da lahko imajo
In kje, ali če kjer med, če ne,
Zdaj, po vrsti.
Lahko določite drugačen pridruži med tabele baze podatkov
ki Knjižna polica uporablja interno vzpostaviti nekakšno čarovnijo
okoli hasOne, hasMany, belongsTo, belongsToMany.
Tako kombinacija
od dveh Naj vam zal veliko bi tisto, kar je treba uporabiti
v okviru všeč Laravel v smislu
funkcionalnosti delo z bazami podatkov.
Torej, gremo naprej in da pogled na enostaven primer
za Express app, ki uporabi teh modelov
in zbirk Knjižna polica jazz [fonetična].
Torej, sem vzpostavil samo enostavna uporaba tukaj.
I odmislili nekaj stvari da je inicializacija ekspres
in se premakniti, da v init Imenik ki sem ga ustvaril.
Ena od lepih stvari delo z Express, kot bi moral
da Laravel je, da obstaja res ni veliko izvršiti
na vas conventionalized.
Tako da lahko ustvarite imenike -
to pa res ne dajo cel kup dela off.
Imaš nekako nekaterih Osnovne nastavitve in potem -
vendar to ne skrbi kjer si jih dal.
Vam ni treba imeti Imenik kontrolor.
Vam ni treba, da imajo modeli imenik, imenik config.
Lahko nekako ustvari tistimi, ki so svoj projekt potrebami
in nastavite stvari pot da je smiselno za vas najpomembnejše.
Torej, namesto da bi vse to express boilerplate
v glavnih app.js sem rekel app Enako zahtevajo pr / ekspres.
In tako v init,
inicializacija mapo Pravkar sem Express tukaj
in to zahteva Express, klice Funkcija nastavitve poziva -
nastavi pogled motor, JSON parser, vse to.
Torej, zdaj, dajmo še naprej navzdol.
Torej sem zahtevala inštruktor Seveda srečanje
in zahteve modelov.
Torej, to so v mapi, ki Pravkar sem se odločil, da ime modele.
To ni treba, da je Tako pa je smiselno,
ampak modeli je samo lepa Skupno tako da bi priporočal.
Ampak - Torej pojdimo za študij.
Mislim, da sem s pomočjo - Ja, in primeri
tu spodaj, temeljijo po modelu seveda.
Torej, kaj je pravkar sprejeti poglej to.
Torej, zdaj, samo v Prva vrstica tega modela,
Jaz sem že zahtevajo nekaj drugega.
Torej, če boste opazili v vozlišču morate biti zahteva
ali boš na koncu zahteva cel kup
v različne datoteke ki se nahaja
v različnih krajih v svoji vlogi.
In relativne poti da kjerkoli že ste
V vaši trenutni vlogi,
razen če je najvišji ravni že opredeljena kot si ga namestite
z MPM kot knjižno polico ali Knex ali Express ali kaj podobnega,
to ni relativna.
Ja? Povečaj več?
OK. OK. Torej, boš na koncu zahteva cel kup
da samo različne datoteke v vašem kodo, ki je dobro in slabo.
Na dober način boste vedeli, kam stvari in to ni neke
magije, kaj je dogaja pod pokrovom,
ki lahko res zmedeno
če imate zelo težka Java -
ali zelo težka okvir kot Laravel, ki nekako pravi,
bomo poskrbeli to, da nimate
zahtevajo vse ampak moraš
vedeti, kako se je vse dela, da bi ga uporabljali.
Kadar je, kot v tem primeru, je Zelo enostavno, kot da
kjer je vse, oni so le konci
se pa malo več tipkanja.
Tako kot na strani mi je všeč za uporabo, tam je plugin
Če uporabljate slepo besedilo
kjer lahko montažo vozlišče moduli pomožnemu in lahko začnete
za tip, kot inštruktor in ustvarja relativno pot
kje ste tisti, ki Koda datoteka, nekako koristno.
Torej, model tečaj se zahteva osnove tukaj
in nato z bazo Intern zahteva init / knjižno polico
in nato polico, da zahteva Knjižna polica najvišji ravni
in ga nato inicializira z inicializiran Knex primer,
ki določa ime stranke
in povezava nastavitve za bazo podatkov.
Torej, jaz sem samo z uporabo preprostih primerek Sequel Pro, ki -
MySQL, jo bom z dostopom Nadaljevanje Pro in je to nekako
podobne baze nastavitve, kot smo imeli
V prvi uporabi vzorca s katalogom tečajev.
Torej, jaz določim povezavo Nastavitve tukaj,
in to so vsi dokumentirani na projektni strani Knex.js
o tem, kako setup te povezave.
Torej, zdaj imam svoj osnovni model.
In kot sem že omenil, s sprememba prototip,
tako da lahko dejansko nekako veliko za -
dodaja veliko boiler s kodo, tako convention
, ki je bilo prilagojeno z Backbone.js
in zdaj je Bookshelf.js dodati ta način podaljša
kot statično premoženja na Tvoj JavaScript predmeti,
kar ji daje nekakšno skoraj ki temelji razred dedovanje narava
kjer, če pokličete razširiti lahko nastavite katerokoli
od metod prototipnih da bi radi tukaj
in potem si lahko - vsaka extra statične metode
da boste morda želeli, boste samo jim lahko nastavite sami
sem, da bom lahko podaljša z - tako da, če, na primer,
Potrebna več modelov prikaže ime in to dobili ime.
Torej, tukaj, jaz pravim Ime zaslon za modela
Privzeto je, ne glede na njegovo ime Lastnina je sicer donos
no name.
In zdaj na vsak Vzorec, ki je -
, ki se razteza ta osnovni model, sem imajo sedaj metodo ime prikaza
na prototipu veriga nekje.
In če želim prepisati Jaz lahko samo set - določiti, kaj -
getName bi bilo tukaj.
In to vam omogoča, da posnemajo klasična dedovanje
v JavaScript, ki je lahko lepo, predvsem za stvari,
, ki so sami po sebi po posodi Razred, ki temelji, kot objektnih modelov.
Torej, kaj je skočil nazaj v koda aplikacije.
Torej imam pot za samo slash, samo za moj indeks
in nato poševnica tečajev.
In oba sta kliče Postopek renderCourses.
Torej še enkrat, funkcije prvi razred in se lahko prenesejo
kot argumente k metodam.
Torej, v tem app.get, Kličem -
Jaz sem mimo renderCourses kot argument.
In postane - ali funkcije lahko setup kot var -
kot sem delal prej var renderCourses enako funkcijo
ali pa je lahko ravno Funkcija renderCourses.
To ne pomeni, da preveč veliko razliko.
Lahko dejansko imajo kaj Imenujejo se ime funkcije
izrazi, ki so var renderCourses Enako
Funkcija renderCourses.
In razlog, da želijo imeti ime funkcije, zlasti
v vozlišču je, da vam čistilec -
bolj berljivo sled sklada.
Torej, če imate cel kup
anonimnih funkcij da bodo rekli -
če imate napako v kodi boš -
ne boste vedeli, katere funkcija ga kliče boš moral pogledati
na kodno številko in številko vrstice
in to je včasih lažje samo vizualno razčleniti
ko ste dejansko imajo imena
za funkcije sami na strani strežnika.
Torej, to renderCourses, recimo vozlišča aplikacije -
tako poslušam o Core 3000 [fonetična].
In tako se vse to počne prav Tukaj je ravno vse
Tečaji iz baze podatkov.
Jaz sploh ne omejuje tako da je početje veliko število
vrstic je to vrača.
In da bi to naredili,
na modelu Seveda obstaja je statična lastnost
imenuje zbirka.
In tako sem jo poklical - I je dejal ustvariti novo zbirko
Za to seveda nato pa ga prinesi,
in se nato vrne tečaje Zbirka tukaj v obljube.
Tako interno, David in - Zadnjega pol naučil malo
o obljubah in obljube so Zelo močno se uporabljajo v obeh Knex
in ker Knjižna polica posoja -
vam, ki daje sposobnost, da imajo kup
različnih asinhroni klici in nekako se pridružijo nato skupaj
ali puščati nekaj, in potem
S tem klicem drugo asinhrona podatkovna baza klic
in vrne te vrednosti in nato skoči na naslednjo nato
in zraven takrat in potem ujeti na samem koncu razvrstiti
od posnemajo asinhrona poskusiti ulov ravnanje z asinhronim kodo,
ker ste ga videli zdaj
ampak to je še težje, ko boste začeli ukvarjati z njo.
Asinhrona koda je le povsod
na strani strežnika JavaScript in res v veliko večji meri
kot ste navajeni, da če ste storili JavaScript
na strani odjemalca.
Tako, da res, res Pomagal tam.
Ampak samo, da ti pokažem Izjava razhroščevalnik
da sem govoril v Inšpektor orodja vozlišč,
Jaz grem naprej in vrgel Debugger linijo tukaj
v funkciji renderCourses in videli, če mi, ki vodi
ko sem - tako vozlišče Inšpektor se lahko namesti
s tem NPM Namesti z G zastavo,
kar pomeni Globalno Node inšpektor.
In ga bo pa prinesi za NMP in ga namestite na svetovni ravni
za svoje aplikacije tako da lahko samo call it
v ukazni vrstici.
Sem že nameščen to, da bom šel naprej in -
pravzaprav bi morala počakati, da bom samo,
dve sekundi.
In kaj vozlišče inšpektor Ponovno vam omogoča
storiti je, da ima ta brezglavi različica debugger konzole
da ste navajeni pri delu na strani odjemalca in biti sposoben
da se ustavi, dodajte določeno opozarja na svojo kodo.
Ustaviti usmrtitev in sprejeti poglej, kaj se dogaja,
kar bi v resnici prišel prav, če funkcijo
kot da so bili na voljo
ko debugging vaš PHP code sem prepričan.
Torej, kaj je pravkar sprejeti poglej to.
Tako da sem lahko samo pokliči vozlišče inšpektor
in bomo rekli, obiščite ta URL port 5858 začeti odpravljanje napak,
to je samo privzeto kako se zažene.
Torej, sem sedaj dobil - pa je nič ne dogaja
ker moram začeti.
Torej vozlišče zastoj [fonetična] razhroščevanje zastave in nato app.js.
Tako pravi debugger posluša na vratih 5858,
Express poslušanje strežnik na 3000.
Torej smo na dobri poti.
Naj samo osvežiti to.
In zdaj lahko vidim app.js kodo, ki sem iskal na
ampak tukaj v konzoli.
Torej, zdaj, če jaz začeti teči to, lahko vidite, se ne ustavi.
To je samo čaka, saj so njeni Celotna izvedba koda je zdaj
ustavi na tej razhroščevalniku linija, ki sem jih dal notri.
In sem lahko zdaj strežnik -
[Neslišno Opomba]
Oh, ja. Kaj je ključna beseda bližnjica za povečavo zaslon?
Oh obstaja.
Imam jo. OK.
[Pause]
Oh, to ni videti [Fonetično] da.
Torej, tečaji je res velika
ker ne delam omejiti klavzulo ali kaj podobnega,
to je samo pridobivam Celotna zbirka podatkov o tečajih
ki so veliko od njih.
In tako -, ki je predmet
da bi dejansko crash Inšpektor primer note.
To je - OK.
Bom jaz mejo in potem bomo lahko ogledamo
ko ne pridobivam sto tečajev.
Torej, ubil strežnik in inšpektor
jaz bom pa seveda Rok za zbiranje vprašanje 20.
Torej, v knjižni polici za razliko od Laravel
kjer lahko pokličeš omejujejo neposredno ali poklicati
teh metod SQL , ki ga uporabljate
neposredno na primer ORM.
Kadarkoli se, da uporabljate samo Postopek SQL ki je predviden
v Knex, morate pokličite poizvedbo za razvrščanje
iz pipe v poizvedbo verigi.
In to je mogoče uveljavljati z eno funkcijo,
tako da lahko rečem, delovanje ta meja 10 ali ga pokličete
z navedbo, ki Metoda želite poklicati
na primer Knex in nato, katerega vrednost.
Zato bomo storili omeji 20 in nato nastavite.
Mi dejansko ne Potrebujemo razhroščevalnik tukaj
ker smo lahko samo nastavite prekinitvene točke
in da je lažje.
Vse je v redu.
Torej, kaj je nastaviti odmerka tukaj in poskusite naložiti.
Napačno linijo.
Tukaj.
[Pause]
OK. Torej je spet ustavil.
Torej sedaj, tečaji je ugovarja z dolžino 20
in bomo lahko videli vsi drugačni Modeli, ki ga je nerealne
iz baze tukaj tako da imam modela predmeta
, ki v svoji notranjosti atribute nepremičnine
o predmetu, so vse stvari, , ki je bilo ugotovljeno v bazi podatkov.
Vsi dogodki, ki imajo bila registrirana
tako se lahko registrirate Različni dogodki,
na primer, ko Model se črta
ali, če je to pridobivate,
lahko nastavite različna lastnosti ali spreminjati stvari.
Obstaja veliko različnih trnkov in to so vsi dokumentirani
v Bookshelf.js Dokumentacija, ki vam omogočajo
narediti neke vrste ničesar da si res želiš
s svojimi modeli in zbirk.
Lahko - oni pomenilo biti zelo prilagodljiv
in enostavno za da jih prilagodi
potrebam vašega vloga.
Ampak samo gledaš skozi tukaj,
Vidim, kaj razlikuje Tečaji so na voljo.
In v tem primeru, sem dejansko ni puščati
z vsemi drugimi podatki, razen le tečaji sami.
Toda na podoben način, da Zgovorna ORM lahko nastavite
up odnosi, tako seveda spada v mnogih inštruktorja.
Torej, če grem naprej in prenehanju uporabe,
skok na to puščati klic, Določite lahko različne možnosti
, ki bi radi prenesti skupaj z njim.
In eden od njih je sposobnost nalaganja sorodne kodo
z določitvijo withRelated inštruktorji, nato tečaji.
Torej, gremo nazaj in svež spet ta tukaj in stop.
Torej sedaj, tečaji nasprotuje, Enako število modelov,
zdaj pa vsak model Ima hash odnosov
ki ima inštruktorje da je to povezano.
Torej, to seveda za primer
kar je seveda 082 ima dva povezane modeli inštruktorja.
In si lahko že videli, kako veliko lažje je to za razvrščanje
vizualno delo z od ko imate opravka s stvarmi
da ste nekako spremeniti kodo in ga nato znova poskusite v PHP.
Dejstvo, da lahko samo popolnoma ustavi usmrtitev
in oceniti, kaj je tukaj in - v konzoli, -
pomanjšanje, tečaji je, veste,
kaj je lokalna obseg spremenljivke so na voljo
in to je trenutno svetovna predmet, saj, kot ste videli,
če pokličeš z specifične okoliščine, da je ne bo
da imajo nekaj pomembnih tukaj.
In potem - kaj mi pokazati nekaj več primerov
izvajanjem obljub.
Torej, namesto da bi to sprejel withRelated inštruktorji tukaj sem jaz
dogaja, da gredo naprej in premakniti to puščati in nato tečaji,
Grem, da se vrnete courses.load inštruktorji.
In potem - potem si poklical takrat.
[Pause]
Torej v tem trenutku, tečaji morajo biti naloženi
z inštruktorji, ki je asinhrona ukrepanje.
Ampak zato, ker smo jo vrne z obljubo, naslednja vrednost
Za takrat je karkoli že to asinhroni klic vrne
ki v tem primeru obremenitve je metoda Knjižna polica
ki dejansko vrača zbiranje sama.
Torej, to je nakladanje inštruktorji tam
in potem si lahko določite - če je samo ena lastnost,
lahko določite to kot niz, v nasprotnem primeru,
lahko storite inštruktorje in zahteve
kot metoda - Žal mi je, kot matriko.
In potem, če želite, da bi dobili res fancy in omejiti koli
med njimi glede branj, ki jih lahko opredeli kot hašiš
z inštruktorjem in kaj potem vam je všeč, da se omeji poizvedbe na.
Torej, želim, da naložite vse inštruktorji na tečajih kjer je -
tako QB za poizvedbo graditelja kjer je aktivno stanje.
In lahko dobite zares fancy s katerim koli
s tem povezanih vprašanj da želite zgraditi.
Ampak, samo za zdaj, gremo da se držijo samo inštruktorji
in smo se vračajo, da je vrednost
tako da potem naslednjič pa naj bi imajo vsi tečaji naložen
pravilno.
In če je bila napaka ob vsakem koraku v tej verigi,
da bi skočil dol z ulovom.
Torej, gremo naprej in vodijo to.
Tako da vsakič - za razliko od PHP, ena slaba stran je,
"Ker vozlišče" je dolg tek Postopek, ki jih dejansko potrebujejo
ustaviti postopek vozlišča kot boste posodobili svojo kodo,
ker je različica, ki je teče v času delovanja je,
različica oznaka, ki je naložen
ob zagonu ne kaj imate neke
posodobljenih kodo z od takrat.
OK. Bomo nastaviti odmerka tukaj, tukaj in osvežitev.
[Pause]
Oh, pravzaprav ni osvežite to stran, bodisi
tako da je bilo na starem postopku.
Torej si osvežite tako to in inšpektor vozlišče.
Torej, zdaj smo videli tečaje.
Če vzameva vzorec enega od teh modelih
lahko vidimo, da so odnosi Objekt je prazna, zdaj pa -
in razlog, da morate nastaviti prelomnih točk, je dobro,
Sem omenil, da lahko skok v sled sklada
in videli boste vedeli, kje to se dogaja v app.
Torej, zdaj vidim, kaj je dogaja v metodi obremenitve
ki sem jih opredeljeno o zbirkah.
Nekako v "Nestrpen obremenitve odnosi na že ".
In lahko stopite preko in glej po vrsticah
kje je ta stvar dogaja kar je super.
Če imate kaj , ki je razdeljena v kodi,
to je metanje nekaj napak in ti si kot sem res želim
da vidim, kam to pelje.
Toda takoj, ko naletite Nekaj ​​asinhrono, -
gre za naslednja ustrezno dogodkovnega zanke
in boste izgubili svoje - ste izgubili svoje mesto
V inšpektorja vozlišča.
Tako da boste morali povedati, "OK, ko sem izgubila to,
pa mora zdaj ustaviti ponovno na tej vrstici. "
Ker če sem kar naprej tepe dol, dol dimnika,
da bi imeli na koncu le odšel je, ne sem iz tega
Vrstica 22 modro prelom vrstice.
Torej, zdaj, če pogledam na tečajih tukaj,
bi morala na odnos inštruktorji
in nato inštruktorji jih priložite.
Torej, lahko vidite, da sem se vrnil Obljuba iz prve obljube
in potem si lahko neprestano to, da dol linijo.
Tako drugačna obljuba, Obljubim, knjižnice,
Včasih sem ena imenovana Bluebird kar je res uporabno.
Dodaja veliko lepo od tega za spreminjanje asinhroni -
spreminjanje klic nazaj Osnova kodo v stvari
da dobro deluje z obljubami.
Vendar pa - žal [neslišno] kaj Hotel sem reči tam.
Oglejmo pogled čeprav je -
Torej, recimo, da je bilo Težava pri pridobivanju nekaj.
Torej imam to drugo pot najti imenovano seveda ID.
Torej, kaj je naredil tečaj 2.
Lahko dobim - JSON tečaj.
In to počne [neslišno].
[Pause]
Voham nekaj narobe tukaj.
Ne na 3000, sem bil na Kartica inšpektor Chrome.
OK. Torej gremo na Seveda - JSON tečaj 1.
In to se vrne šele v JSON format, seveda naložen
z nekaterimi inštruktorji.
Ampak primer sem hotel da dobimo tukaj je, da
Delam JSON tečaja ID.
In v prinesi parametrov, Jaz sem natančno zahtevajo res,
kar je možnost, ki je dokumentirani na knjižno polico
kjer je rekel, da "Če Bom poskusil najti ta predmet
in to ni tam, nato vrgel napako. "
In da je treba zajeti v ulov blok tukaj.
Torej, gremo naprej in skoči nazaj v inšpektor vozlišča in poskusite
in prekinil to in glej, kaj imamo.
Torej, kaj je določila odmor tukaj na JSON seveda.
Vse je v redu.
Jaz bom šel na tečaj in JSON Jaz bi samo dal v nekaj -
[Pause]
To je lahko precej zapleteno Včasih, ko poskušate
za upravljanje s katero je osvežil
in ki niso - poglejmo.
Tako da kliče napako prazen odziv.
[Pause]
Dodajva iskalnik napak tukaj.
Zaradi načina vozlišče dejansko optimizira
za runtime JavaScript da se tako hitro na strežniku,
včasih razhroščevalnik vozlišče ima nekaj napak, ko poskušate
in nastavite prekinitvene točke dinamično in jih dejansko ne potrebujejo
da uporabite iskalnik napak in ne linije-by-line.
Torej, da vidimo, če je to nas dobi tisto, kar si želimo.
Zato sem set, app.get json Seveda id,
in sem naredil svoj iskalnik napak ni
v izjavi o ulovu na dnu.
Fetch zahtevajo res, bi moral - Vse je v redu, pa gremo, zlomil.
Torej, zdaj vidim, da se ustavi
V tem zadnjem bloku ulovu ker withRelated -
ali zato, ker zahteva res določena in ni predmet
z ID-ta velik Številka prek izjemo
ki je zdaj Emessage.
In vsaka napaka v JavaScript ima sveženj nepremičnine
da pride skupaj z njim.
Torej, to je pogosto koristno da se na primer
potolažiti odjavite e.stack.
In sem lahko dejansko videli ko sem udaril napako.
Tako sem dobil napako prazno odgovor, da je to sporočilo
, ki je bil poslan po knjižni polici.
Toda sedaj, ne morem si oglejte na, na poziv dimnik in si oglejte
da v Knjižna polica narečja SQL modela 83,
prazno odgovor Napaka je bila vržena.
In to je, če sem omenil, da je pika anonimen
ker je anonimna funkcija.
Če bi bilo ime funkcije bi imeli boljše ideje
na katerega deluje dejansko skozi ne da bi šel
v kodo model.js.
Čeprav je to mišljeno, da bo precej, precej berljivo,
tako da lahko vidim, da je na spletu.
Kaj povedo me je linija 83.
Torej, če options.require in odziva ni bilo,
zdaj vrže novo prazen napaka odziv.
Tako lahko vidite precej enostavno, kako to deluje.
In interno v knjižno polico,
tam si samo celoto kup uporabe obljub.
Torej, lahko določite Promise.method
z Bluebird knjižnico ki ohranja pravilen kontekst
to pa vračanje obljuba.
In tako sem - sem vezavo Vrednost tega podoben
s tem, kar sem omenil prej, vendar z uporabo obljube
in potem sem lahko - je nov.
To je lahko asinhrona ali ne, če želim.
In potem sem naredil nekaj druge stvari, ki se lahko
ali ni asinhrona in Nato vrste skokov down to.
Torej Promise.all je pomočnik, ki Veliko priljubljenih knjižnic imajo
kjer se lahko nabor potencialno lahko
ali pa morda ne bodo obljube.
In ko vse to so zaključili, da se vrnete
in potem skoči v naslednjo vrstico
in lahko vidite, kako je v resnici izbrišemo piramide
da boste dobili, povratni klic pekel, kot je njegova znana
če delaš vse z callbacks po vrsticah.
Obstajajo načini, da se okoli da je, ampak obljube so eno
od najboljših načinov, po mojem mnenju
da bo res vztrajati kodo čista in enostavna za branje.
, Tako da je le kratek Uvod v JavaScript
ter knjižno polico in Knex na splošno.
In, če obstaja kakršnakoli vprašanja, Vem, da je ton materiala
da nekako poskusiti in pokrov še posebej, ker jezikih
za razliko od večine, ki ste seznanjeni s tem, da si želela sem
da bi bilo tako, da vsaj če imate težave
s kodo, ki jih lahko nekako skok v -
To je tisto, kar sem želel storiti, je, nekako skok v knjižnicah
da sem uporabo in videti kako so stvari strukturirana.
Tam je ena, ki sem jo omenil prej imenovani Backbone.js
in pravzaprav je [Neslišno] na strani odjemalca
da bi dal vzorec pogled Struktura krmilnik
s svojo kodo.
Ampak je dejansko označeni izvorno dokumentacijo
, ki vam omogoča, da nekako videti.
To je res dobro dokumentirano, kaj se dogaja,
kako je to povečuje Funkcionalnost Ajax
ali dogodek funkcionalnost ali modelov in zbirke sort
razložiti, kaj je dogaja v procesu.
In če ste razumeli osnove JavaScript
kot prototypal dedovanja in kako se uporabljajo funkcije
kot predmetov in vrednot in razredi in vse.
To omogoča veliko lažje razumeti, kaj se dogaja
na potencialno knjižnice, da ste z uporabo
in razhroščevalnik kodo in biti sposoben da se ne razbijati glavo
ob steno, ker ne boste razumeli, kako
Različni kosi delajo tako.