>> Nii, et räägitakse,
justkui lihtne Sissejuhatus prototüübid
ja JavaScript objekti mudeli.
Me ei kavatse minna hammasrataste natuke rääkida
kohta rohkem JavaScript server ja Raamaturiiul Raamatukogu
ja ühendus Knex Library.
Nii saab tegelikult lihtsalt -
kui otsite Bookshelf.js see peaks olema üsna lihtne
leida, tuleks kõigepealt tulemus ning raamaturiiul
David mainitud lihtsalt annab palju struktuuri
ümber JavaScript objektid ja nendega töötavad relationally
relatsioonandmebaasides.
Nii palju sarnaseid jooni kes on tegelikult suuresti inspireeritud
poolt Laravel on ORM kui samuti Backbone.js,
mis on esiotsa MVC raamatukogu, mis võimaldab teil
struktureerida oma kood, sarnane sellele, mida olin näitab
koos näited prototüüpe, kus saab -
asemel lihtsalt suvaliselt viskamine klasside
oma seisukohti siin ja seal.
See annab teile mudelid kogud need mudelid
mis peaksid tegutsema omamoodi üksainus tõde
umbes andmeid oma taotluse.
Ja siis kuulata, kui need mudelid muutused, ütlete, OK,
uuesti muuta seda malli siin ja see siin
ja mitte lihtsalt lisada klassi siin Lisa klassis ja omamoodi valida
on valijad ja teha ämblikuvõrk jQuery koodi.
See annab rohkem tasemega põhinevaid struktuuri eravalduses,
kuid oluline komponent et raamatukogu on mudelid
mis on sarnane struktuur mida Raamaturiiul mudeleid teha.
Niisiis, kui te olete juba tuttav Raamaturiiul sa oled ilus ka
üsna tuttav Backbone.js mudelid
ja ma soovitaks võttes pilk see.
Niisiis, mõned põhijooned
et see annab sulle vaid võime luua andmete objekti
helistada tõmmata, mis tagasi individuaalne rekord
andmebaasi, luua suhted, sarnane
et mida käsitletakse jooksul sisse Laravel
kui sa ei saa öelda, patsient seada rekord meetod
ja öelda, et see on võitnud rekord
kus rekord objekti tabeli nimi tervisekaardid.
Vaatame.
On palju - see kuulub -
lihtsalt asjad, mis sa oled üsna sarnane -
üsna tuttav Juba kuid JavaScript.
Ja kapoti all, jaoks raamaturiiul,
ta kasutab päringukoostur nimetatakse Knex.js.
Nii, et Knex, knexjs.org.
See on viide mänguasi kui keegi on kunagi mänginud seda.
Kuid see võimaldab teil - in sarnaselt, et jQuery,
sa lihtsalt omamoodi luua ahela erinevate meetodite
et helistate oma andmebaasi rida, nii et saate -
sa hakkasid välja öelda Knex ja tabeli nimi.
Nii, näiteks, Knex kasutajate Valige, milliseid veerge soovite,
kus, ja on erinev, kui conditionals ja sul võib olla
Ja kui, või kui kus vahel, kus ei ole,
sa nüüd, sätestatakse rida.
Saate määrata erinevad liitub vahel oma andmebaasi tabelid
mis Raamaturiiul kasutab sisemiselt luua omamoodi maagiline
ümber hasOne, hasMany, belongsTo, belongsToMany.
Ja kombinatsioon
Kahe saate teha päris palju, mida soovite kasutada
et raam nagu Laravel poolest
funktsionaalsus töö andmebaasidega.
Nii, lähme edasi ja võtta pilk lihtsa näite
jaoks Express app mis kasutab nende mudelite
ja kogud Raamaturiiul jazz [foneetiliste].
Niisiis, ma olen loodud ainult lihtne rakendus siin.
Ma kooritud välja mõned asjad mis algväärtustamisel Express
ja liikuda, et võtta init kataloog, mis olen loonud.
Üks tore asju töötamisel Expressi peaks
et Laravel on see, et seal on tõesti ei ole palju jõustada
sulle konventsionaliseerunud.
Nii saab luua katalooge -
see ei ole tegelikult teile palju tööd ära.
Sul on lihtsalt mingi mõned Üldised seaded ja siis -
kuid see ei huvita kui paned neid.
Sa ei pea olema kontrolleri kataloog.
Sa ei pea olema mudelid kataloog, config kataloogis.
Võite omamoodi luua need teie projekti vajadustele
ja seada asju nii, mis mõtet teile kõige rohkem.
Nii et selle asemel, millel on kõik Selle selgesõnalise stereotüüp
peamistes app.js ma just ütlesin, app võrdsete nõuavad init / Express.
Ja nii init,
algväärtustamisel kausta Ma lihtsalt ei Express siin,
ja see nõuab Express, kõned setup funktsioon nõuab -
luuakse eesmärgiga mootor, JSON parser, kõik.
Nüüd, olgem jätkuvalt alla.
Nii et ma nõudes Muidugi õpetaja kohtumine
ja nõuete mudeleid.
Nii et need on kataloogi, Ma otsustasin nimi mudeleid.
See ei pea olema nii viis aga on mõttekas,
aga mudelid on lihtsalt ilus ühine nii et ma soovitaks seda.
Aga - Lähme jaoks muidugi.
Ma arvan, et ma kasutan - jah, ja näited
siin on kõik, mis põhineb muidugi ümber mudel.
Seega võtame lihtsalt Vaata seda.
Nii, nüüd, just kohta esimene rida selles mudelis
Ma juba nõutakse midagi muud.
Nii et kui saate teate sõlme siis peaks olema nõuavad
või sa lähed lõpuks nõuab terve hulk
erinevaid faile mis asuvad
erinevates kohtades oma taotluse.
Ja suhteline rajad sinna, kus sa oled
Teie praegune taotlus,
kui see on tipptasemel juba defineeritud installimist
koos MPM nagu raamaturiiul või Knex või Express või midagi,
need ei ole suhteline.
Jah? Suurendage veel?
OK. OK. Niisiis, sa lähed lõpuks on vaja terve hulk
lihtsalt erinevad failid kood, mis on hea ja halb.
Hea viis sa tead, kus asjad on ja see ei ole sort
maagia, millised on toimub kapoti alla,
mis võib tõesti olla segane
kui teil on väga raske Java -
või väga raske raames nagu Laravel, mis justkui ütleb,
me hoolitseme Selle, et sa ei pea
nõuda kõike aga sa pead
teada, kuidas kõik töötab selleks, et seda kasutada.
Kui näiteks sel juhul, see väga lihtne, et
kus kõik on, nad on lihtsalt otsas
up on veidi rohkem kirjutamist.
Just nagu pool mulle meeldib kasutada, seal on plugin
kui te kasutate pime tekst
kus saab paigaldamise sõlme moodulid helper ja saate alustada
kirjuta nagu Instructor ja see tekitab suhteline tee
kus sa oled selle kood faili, omamoodi kasulik.
Niisiis, loomulikult mudel on nõudes baasi siin
ja seejärel baasi intern nõuab init / raamaturiiul
ja siis Raamaturiiul, see nõuab tipptasemel Raamaturiiul
ja siis käivitab selle lähtestatud Knex näiteks
milles klient nimi
ja ühendus seaded andmebaasi.
Nii et ma olen lihtsalt kasutades lihtsaid Astme Järge Pro mis -
MySQL, ma tutvumise seda Järge Pro ja see on justkui
ning sarnaseid andmebaasi setup nagu meil oli
aastal esimese proovi pealekandmise koos muidugi kataloogi.
Niisiis, ma panen oma ühenduse seadeid siin,
ja need on kõik dokumenteeritud edasi Knex.js projekti lehekülg
selle kohta, kuidas setup need ühendused.
Nii, mul on nüüd minu baasmudel.
Ja nagu ma mainisin koos prototüüp muutus,
nii et ei saa tegelikult olema selline palju -
lisab palju trafaretset oma koodi nii konventsiooni
mis on kohandatud poolt Backbone.js
ja nüüd Bookshelf.js on lisada see laiendada meetod
staatilise vara Teie JavaScript esemeid,
mis annab talle justkui peaaegu klassi baasil pärand loodus
kus kui helistate laiendada saate seadistada iga
prototüübi meetodid , mida soovite siin
ja siis saate - kõik pildi staatilised meetodid
et võiksite te lihtsalt määrata neile endile
siin, et ma saaks seda pikendada - nii et kui näiteks
Mitme mudeli vaja kuva nimi ja see saada nimi.
Nii, siin, ma ütlen kuva nime mudelile
Vaikimisi on olenemata oma nimi vara on muidu tagasipöördumist
no name.
Ja nüüd on kõik mudel, mis on -
mis ulatub selle baasmudel I Nüüd on kuvatav nimi meetod
prototüübi kett kuhugi.
Ja kui ma tahan, et see üle kirjutada Võin vaid seada - määrata, mida -
getName oleks siin.
Ja see võimaldab teil jäljendada klassikalise pärandi
JavaScript, mis võib olla kena eelkõige asjad
mis võimalda olla klass põhineb nagu objekti mudeleid.
Niisiis olgem hüpata tagasi taotluse koodi.
Nii et mul on liinil ainult kärpida, lihtsalt minu indeks
ja seejärel kaldkriips kursused.
Ja neid mõlemaid kutsudes renderCourses meetod.
Nii et taas, funktsioonid esimese klassi ja saab edasi
argumentidena meetodeid.
Niisiis, sel app.get, Ma kutsun -
Ma kulgeb renderCourses kui argument.
Ja muuta - või funktsioonide saab setup nagu var -
kui ma tegin varem var renderCourses võrdub funktsiooni
või saab neid lihtsalt funktsioon renderCourses.
See ei ole liiga palju erinevust.
Võite tegelikult on, mida kutsutakse nimi funktsioon
väljendeid, mis on var renderCourses võrdsete
funktsioon renderCourses.
Ja põhjus tahtnud nimi funktsioone eriti
aastal sõlm on see annab teile puhastaja -
loetavamaks pinujälge.
Nii et kui sul on terve hunnik
Anonüümsete funktsioonide ta ütleb -
kui sul on viga Teie kood You'Ll -
sa ei tea, mis funktsioon ta helistab, et sa pead vaatama
kell koodnumber ja liin number
ja see on mõnikord lihtsam lihtsalt visuaalselt sõeluda
kui sa tegelikult nimed
funktsioonide ise serveri poolel.
Nii et see renderCourses, Kutsume sõlme apps -
nii et ma kuula Core 3000 [foneetiliste].
Ja nii see kõik läheb paremale siin on lihtsalt saada kõik
kursuste andmebaasist.
Ma isegi ei piiritle seda nii see läheb tohutu hulk
Ridade ta naasis.
Ja selleks, et seda teha,
kursuse mudeli seal on staatiline vara
nimega kogumine.
Ja nii ma lihtsalt kutsun seda - ma ütles kollektsiooni luua
seda muidugi, ja siis tõmbad seda,
ja siis tagasi kursused kogumine siin lubadus.
Nii sisemiselt, David - Viimase poole õpetas natuke
umbes lubadused ja lubadused on kasutatakse väga palju nii Knex
ja Raamaturiiul sest see sobib -
see annab teile võime on kamp
erinevate asünkroonne kõned ja omamoodi liituda siis koos
või tõmbad midagi ning siis
selle kõne teisele asünkroonne andmebaasi kõne
ning tagastab selle väärtuse ja siis hüpata järgmisele siis
ja järgmine siis ja siis on saagi päris lõpus sorteerida
ning matkivad asünkroonne proovida saak käitumise asünkroonne kood,
sest te näete seda nüüd
aga see on isegi raskem kui hakkate tegelema.
Asünkroonne kood on lihtsalt kõikjal
aastal serveripoolne JavaScript ja tegelikult palju suuremal määral
kui sa oled harjunud, kui olete teinud JavaScript
kliendi poolel.
Nii et tõesti, tõesti aidanud teil seal.
Aga lihtsalt näidata siluri avaldus
et ma rääkisin in sõlme inspektor tööriistad
Ma lähen edasi minna ja viska debugger line siin
aastal renderCourses funktsioon ja vaata, kui see viib mind
kui ma - nii sõlme Inspektor võib paigaldada
tehes NPM paigaldamine koos G lipu
mis tähendab Global Sõlme inspektor.
Ja see toon selle NMP ja paigaldada see maailmas
oma rakenduste nii saab lihtsalt nimetame seda
käsurealt.
Olen juba paigaldatud see, et ma lähen edasi ja -
tegelikult võib see olla ootama seda lihtsalt võtta,
võtta kaks sekundit.
Ja mis sõlme inspektor jälle saab
teha, on see ilma peata versioon siluri konsooli
et sa oled harjunud, kui töö kliendi poolel ja suutma
peatada, lihtsalt lisada määratletud juhib oma koodi.
Peatus täitmist ning võtma Vaata Mis toimub,
mis oleks tõesti tulevad mugav, kui funktsioon
nagu mis olid kättesaadavad
kui silumine oma PHP koodi, olen kindel.
Seega võtame lihtsalt Vaata seda.
Nii et ma ei saa lihtsalt helistada sõlme inspektor
ja ta ütlen külastage URL port 5858 alustada silumine,
see on lihtsalt default kuidas see käivitub.
Niisiis, ma olen nüüd saanud - seal on midagi siin toimub
sest mul on vaja alustada.
Nii sõlme ummiku [foneetiliste] siluda lipp ja siis app.js.
Nii ta ütleb siluri kuula port 5858,
Express server kuulamine 3000.
Nii et me oleme valmis.
Lubage mul värskendage seda.
Ja nüüd ma näen app.js kood, et ma olin lihtsalt vaadates
kuid siin konsooli.
Nüüd, kui ma üritan käivitada, näete, see peatub.
See lihtsalt ootab kuna selle Kogu koodi käivitamist on nüüd
lõpetas selle siluri line, et ma panin sinna.
Ja ma võin nüüd server -
[Kuuldamatu Märkus]
Oh, jah. Mis on märksõna otsetee suurendamiseks ekraanil?
Oh ei.
Arusaadav. OK.
[Paus]
Oh, ta ei otsi [Foneetiliste] et.
Niisiis, kursused on tõesti suur
sest ma ei tee piirata klausel või midagi,
see on lihtsalt edev kogu andmebaasi kursused
mis on palju neid.
Ja nii - see on objekt
et tegelikult võib lennuõnnetuse märkus inspektor näiteks.
See - OK.
Ma teen piiri ja siis saame heita
kui see ei ole edev sadu kursused.
Niisiis, tappa server ja inspektor
ja ma teen muidugi kogumine päringu piir 20.
Niisiis, raamaturiiul, Erinevalt Laravel
kus saab lihtsalt helistada piirata otseselt või kutsuma
Nende SQL meetodid et te kasutate
et otse ORM näiteks.
Anytime, et te kasutate ainult SQL meetodit, mis on ette
aastal Knex, pead helistada päringule sorteerida
ning elavdada päringu kett.
Ja see saab tugineda kas funktsioon,
nii et sa ei saa öelda, funktsioon see piir 10 või te seda
täpsustades, mida meetod, mida soovite helistada
edasi Knex näiteks ja siis, mis väärtus.
Nii et me teeme piirata 20 ja seejärel määrata.
Me tegelikult ei vaja siluri siin
sest me ei saa lihtsalt määrata murdepunktid
ja mis muudab lihtsamaks.
Hea küll.
Niisiis, oletame, määrata murdepunkti siin ja püüame seda laadida.
Vale line.
Siin.
[Paus]
OK. Nii ta lõpetas taas.
Nüüd, kursuste vastuväiteid pikkusega 20
ja me näeme kõik erinevad mudeleid, mis on tõmmatud
andmebaasist siin nii et mul on mudel objekti
mis on sees atribuudid vara
objektil on kõik asjad et see on leitud andmebaasist.
Kõik sündmused, mis on registreeritud
nii saad registreerida erinevaid üritusi,
näiteks kui mudel on kustutatud
või kui see on ebatõenäoline,
saate valida erineva omadusi või muuta asju.
Seal on palju erinevaid konksud ja need on kõik dokumenteeritud
aastal Bookshelf.js dokumendid, mis võimaldavad teil
teha omamoodi midagi et sa tõesti tahad teha
oma mudelid ja kogud.
Sina saad - nad tähendas olla tõesti kohandatav
ja tõesti lihtne sa kohandada neid
vajadusi oma taotluse.
Aga otsides siia
Ma näen, mida eri kursused on kättesaadavad.
Ja sel juhul, ma tegelikult ei too
koos muude andmetega va lihtsalt kursused ise.
Kuid sarnaselt kõnekat ORM saab määrata
up suhted, nii loomulikult kuulub palju õpetaja.
Niisiis, kui ma edasi minna ja mitte kohaldada,
hüpata seda tõmbad kõne, võite saab määrata erinevaid
et soovite edasi mööda seda.
Ja üks neist on võime koormuse seotud kood
määrates withRelated instruktorid siis kursused.
Seega lähme tagasi ja värske see siin ja peatus jälle.
Nüüd, kursused vastuväiteid, sama arv mudeleid,
aga nüüd iga mudel on suhted hash
mis on instruktorid et see on seotud.
Nii see muidugi näiteks
mis on muidugi 082 on kaks seotud õpetaja mudeleid.
Ja sa võid juba näha, kuidas palju lihtsam on see, et järjestada
visuaalselt töötada kui kui olete tegelevad stuff
et sa mingi koodi muuta ja siis proovi uuesti PHP.
Asjaolu, et saate lihtsalt peataks täielikult
ja hinnata, mida on siin ja - in konsool -
suumimiseks kursused on, tead,
mida see kohalik ulatus muutujad on saadaval
ja see on praegu globaalne objekt, sest kui sa seda nägid,
kui sa helistada konkreetses kontekstis, see ei lähe
on midagi siin asjakohane.
Ja siis - las ma näita veel mõned näited
rakendamise lubadused.
Selle asemel, et seda teha withRelated instruktorid siin ma olen
lähen edasi minna ja seda liigutada tõmmata ja siis kursuste
Ma lähen tagasi courses.load instruktorid.
Ja siis - siis helistage siis.
[Paus]
Siis sel hetkel, kursused peaksid olema koormatud
koos juhendajate, mis on asünkroonne toiming.
Aga sellepärast, et me selle tagasi alates lubadus, järgmine väärtus
sest siis on see, mis see asünkroonne kõne tulu
mis antud juhul lasti on meetod, Raamaturiiul
et tegelikult tagasi kogumist ise.
Nii et see laadimise instruktorid seal
ja siis saab määrata - kui see on ainult üks vara,
saate määrata selle kui string, vastasel juhul
saate teha juhendajate ja nõuded
kui meetod - sorry, massiiv.
Ja siis, kui soovite, et saada tõesti uhke ja piirata mis tahes
Nende antud tõmbamisest, siis saate määrata selle räsi
instruktorid ja mis siis soovite piirata päringu.
Niisiis, ma tahaks, et laadida kõik instruktorite kursustel, kus -
nii QB päringule ehitaja kus staatus on aktiivne.
Ja saad tõesti fancy iga
on seotud päringud soovite ehitada.
Aga just nüüd, me ei kavatse jääda lihtsalt instruktorid
ja Me tagastame selle väärtuse
nii siis järgmine siis peaks kõik kursused koormatud
korralikult.
Ja kui seal oli viga igal samm selles ahelas,
oleks hüpata alla saak.
Lähme edasi ja käivitada see.
Nii et iga kord - erinevalt PHP, üks negatiivne külg on
"Sest sõlm" on kaua kestnud protsess, mida tegelikult vaja
peatada sõlme protsessi kui olete oma koodi
sest versiooni, et see on töötab tööaeg on
versioon koodi, mis oli koormatud
käivitamisel ei mida teil on sort
ajakohastatud oma kood koos ajast.
OK. Paneme murdepunkti siin, siin ja värskenda.
[Paus]
Oh, ma tegelikult ei värskendage seda page kas
nii et see oli vana protsess.
Nii et sa värskendada nii see ja sõlme inspektor.
Nüüd näeme kursused.
Kui me lihtsalt võtta proov Ühe sellise mudeli
näeme, et suhted objekt on tühi, kuid nüüd -
ja sel põhjusel, et sa pead määrata murdepunktid on hästi,
Mainisin, et saate hüpata pinujälge
ja vaata tead, kus see läheb app.
Nüüd ma näen, mis on juhtub koormus meetod,
mis ma olen määratletud kogudest.
See omamoodi "Innukas koormused suhted peale juba. "
Ja sa võid astuda läbi ja vaata rida-realt
kus see kraam on läheb, mis on suurepärane.
Kui teil on midagi mis on jaotatud oma koodi,
ta viskab mõni viga ja sa oled nagu, ma tõesti tahan
näha, kuhu see viib.
Aga niipea, kui teil tekib midagi asünkroonne, -
see läheb järgmisel märgistada ürituse loop
ja sa kaotad oma - sa kaotad oma koha
sõlme inspektor.
Nii et sa pead ütlema, "OK, kui ma kaotan selle,
see peab nüüd lõppema selles rida uuesti. "
Sest kui ma hoidsin lööb alla, alla korstnat
see oleks lõpuks lihtsalt kadunud olnud ma ei määrata selle
joon 22 sinine break line.
Nüüd, kui ma vaatan kursustel siin
see peaks seoses õpetajad
ja siis on instruktorid lisab need.
Niisiis, te näete, et ma tagasi lubadus esimene lubadus
ja siis saab pidevalt teha sätestatakse rida.
Nii erinev lubadus, luban raamatukogud,
Ma kasutasin ühe nimega Bluebird mis on tõesti kasulik.
Ta lisab, palju toredaid käesoleva muutmiseks asünkroonne -
muutuvas tagasi helistada baasi koodi värk
mis töötab hästi lubadusi.
Aga - sorry [kuuldamatu] mida Ma tahtsin öelda, et see on olemas.
Võtame pilk kuigi -
ütleme, et tegemist oli probleem kui edev midagi.
Nii et ma pean seda muul viisil leida kutsus muidugi ID.
Teeme muidugi 2.
Kas ma saan - JSON muidugi.
Ja see ei [kuuldamatu].
[Paus]
Ma haistan midagi valesti.
Mitte 3000, olin Chrome inspektor tab.
OK. Nii lähme Muidugi - JSON muidugi 1.
Ja see tagastab ainult JSON formaat, muidugi laaditud
välja mõned instruktorid.
Aga näiteks tahtsin anda siin on see, et
Ma teen JSON muidugi ID.
Ja tõmbad parameetrid Ma täpsustades nõuavad tõsi,
mis on võimalus, et see on dokumenteeritud Raamaturiiul
kus ta ütleb, et: "Kui Püüan ja leida selle käigus
ja see ei ole seal, siis viska viga. "
Ja mis peaks suutma saagi plokk siin.
Lähme edasi ja tagasi hüpata arvesse sõlme inspektor ja proovige
ja murda ja Vaatame, mis meil.
Niisiis lepime break siin on JSON muidugi.
Hea küll.
Ma lähen JSON kursuse ja Ma lihtsalt panna mõned -
[Paus]
See võib olla veidi keeruline Mõnikord, kui sa üritad
hallata, millest üks on uuenemine
ja mis ei ole - vaatame.
Nii ta helistab viga tühi vastus.
[Paus]
Viskame siluri siin.
Sest kuidas sõlme tegelikult optimeerib
eest JavaScript runtime olla nii kiire server,
mõnikord sõlme siluri on mõned vead, kui üritate
ja määrata murdepunktid dünaamiliselt ja mida sa tegelikult ei vaja
kasutada siluri ja mitte rida-line.
Vaatame, kui see saab meile, mida me tahame.
Ma sätestatud, app.get Jon muidugi id,
ja mul tuleb siluri seal
püügist avaldus allosas.
Tõmba nõuavad tõsi, see peaks - Olgu, seal me läheme, murdis.
Nii, nüüd ma näen, et ta lõpetas
selles lõplik saagi plokk sest withRelated -
või seetõttu, et on vaja tõelist määratletud ning puudub kursus
ID selle suure number kaudu arvatud
mis on nüüd Emessage.
Ja iga viga JavaScript on stack kinnisvara
et tuleb koos sellega.
Nii et see on sageli kasulik et näiteks
konsool välja logida e.stack.
Ja ma ei saa tegelikult näha kui ma tabanud viga.
Nii et ma saan viga tühi vastus, see on sõnum
mis oli saadetud Raamaturiiul.
Aga nüüd, ma ei saa heita at, at pinu ja vaata
et Raamaturiiul murrete SQL mudel 83
see tühi vastus viga visati.
Ja see on koht, kus ma mainitud, on dot anonüümne
sest see on anonüümne funktsioon.
Kui see nimi funktsioon siis oleks parem ideid
et mis toimivad tegelikult kaudu, ilma et peaks minema
arvesse model.js kood.
Kuigi see on mõeldud üsna, üsna loetav,
nii et ma ei näe, et internetis.
Mida nad öelda mul oli rida 83.
Niisiis, kui options.require ja Vastus ei ole,
see nüüd viskab uue tühi vastus viga.
Nii et näete, päris arusaadav, kuidas see toimib.
Ja sisemiselt raamaturiiul,
seal on lihtsalt kogu hunnik kasutamise lubadusi.
Nii saab määrata Promise.method
koos Bluebird raamatukogu mis hoiab kehtiv kontekstis
Selle ajal naasmist lubadus.
Ja nii ma olen - ma siduv väärtuseks sarnane
mida ma eespool varem, kuid kasutades lubadused
ja siis ma saan - on uus.
See võib olla asünkroonne või mitte, kui ma tahan.
Ja siis ma teen mõned muud asjad, mis võivad
või mitte olla asünkroonne ja siis erinevaid hüppeid alla selle.
Nii Promise.all on abimees, mis palju populaarne raamatukogud on
kus saab massiivi potentsiaalselt võib
olla või mitte olla lubadusi.
Ja kui kõik need on lõppenud, siis tagastama
ja siis ta hüppab järgmisele reale
ja te näete, kuidas see tegelikult flattens välja püramiid
et sa saad, tagasihelistamise põrgu oma tuntud
kui sa teed kõike koos kutse, rida-realt.
On viise, kuidas saada umbes et vaid lubadused on üks
parimaid viise minu arvates
et tõepoolest hoida oma koodi puhas ja lihtne lugeda.
Nii et on vaid lühikese Sissejuhatus JavaScript
ning raamaturiiul ja Knex üldiselt.
Ja kui seal on mingeid küsimusi, Ma tean, et see on ton materjali
et omamoodi proovida ja kaas eriti kuna keeles
Erinevalt enamikust et olete tuttav, et ma tahtsin
teha nii, et vähemalt kui sul on probleeme
oma koodi, siis saab omamoodi hüpata -
et see, mida ma tahan teha, on omamoodi hüpata raamatukogud
et ma kasutan ja vaata kuidas asjad on üles ehitatud.
Seal on üks, et mul oli mainitud varasema nimega Backbone.js
ja tegelikult on see [Kuuldamatu] kliendi poolel
Give mudel vaade kontroller struktuur
oma koodi.
Aga see on tegelikult selgitustega dokumentatsiooni allikas
mis võimaldab teil omamoodi näha.
See on tõesti hästi dokumenteeritud, mis toimub,
kuidas seda täiendada Ajax funktsionaalsus
või kui kasutusel on mudelid ja kogud sort
selgitades, mida on toimub protsessi.
Ja kui te mõistate, põhitõdesid JavaScript
nagu prototypal pärandi ja kuidas funktsioone kasutatakse
kui mõlemad objektid ja väärtused ja tunnid ja kõik.
See muudab palju lihtsamaks aru, mis toimub
on potentsiaalselt raamatukogude, et te kasutate
ja siluri kood ja suutma et ei saa peksma oma pead
vastu seina, sest sa ei saa aru, kuidas
erinevaid tükke töötavad, nii et.