>> Niin, että on sanottu,
vain eräänlainen yksinkertainen johdatus prototyyppejä
ja JavaScript-objekti malli.
Emme aio siirtää pyydykset hieman puhua
muutakin JavaScript palvelimen ja kirjahylly kirjasto
ja yhteys Knex kirjasto.
Joten, voit itse vain -
jos etsit Bookshelf.js se olisi aika helppoa
löytää, olisi ensin tulos, ja kirjahylly
David mainittiin vain antaa paljon rakenteen
noin JavaScript esineitä ja heidän kanssaan työskenteleville relationally
relaatiotietokantojen.
Niin, paljon samanlaisia ​​piirteitä kuka todella raskaasti innoittamana
by Laravel n ORM kuin sekä Backbone.js,
joka on etupää, MVC kirjasto, jonka avulla voit
jäsentää koodin, samanlainen kuin mitä olin osoittaa
josta esimerkkeinä prototyyppejä, jossa voit -
eikä vain mielivaltaisesti heittää luokat
mielipiteenne siellä täällä.
Se antaa sinulle malleja ja kokoelmat kyseisten mallien
joiden on tarkoitus toimia eräänlainen yhden pisteen totuuden
noin tiedot hakemuksesi.
Ja sitten kuunnella, kuin mallien muutokset, sanot, OK,
uudelleen tehdä tätä mallia täällä ja tämä tänne
eikä vain lisätä luokan täällä, lisätä luokan siellä ja tavallaan poimia
on valitsimet ja tehdä hämähäkinverkko jQuery koodi.
Se antaa enemmän luokkapohjaiset rakenne yksittäisiä,
mutta tärkeä osa että kirjasto on malleja
, joilla on samanlainen rakenne mitä Kirjahylly mallit eivät.
Joten, jos olet perehtynyt Kirjahylly olet melko myös
melko tuttuja Backbone.js malleja,
ja haluan suositella vilkaisemalla tätä.
Niin, jotkut tärkeimmistä ominaisuuksista
että se antaa sinulle vain kyky asettaa tietojen kohteen
soittaa hakemaan, joka palauttaa yksilön ennätys
tietokannasta, luo suhteet kuin vastaavia
, mitä käsitellään kuuluvaa Laravel
jossa voit sanoa Potilas asettaa ennätys menetelmä
ja sanoa tämä on voittanut ennätys
jossa ennätys esine on Taulukon nimi potilaskertomuksia.
Katsotaanpa.
On monia - se kuuluu -
vain tavaraa, että olet melko samanlaisia ​​-
melko tuttuja jo, mutta JavaScript.
Ja konepellin alle, for kirjahylly,
se käyttää kyselyn rakentaja nimeltään Knex.js.
Niin, että on Knex, knexjs.org.
Se on viittaus lelu, jos kukaan on koskaan pelannut tätä.
Mutta sen avulla voit - in Samalla tavalla, jQuery,
te vain eräänlainen luo ketjun eri menetelmien
että soitat oman tietokannan rivi joten voit -
aloitit sanomalla Knex ja taulukon nimi.
Niinpä esimerkiksi, Knex käyttäjiä, Valitse, mitkä sarakkeet haluat,
missä ja on toinen, jos conditionals ja voit olla
Ja missä, tai jos jossa välillä, jos ei,
nyt, ruodussa.
Voit määrittää eri yhtyy välillä tietokantataulukot
joka Kirjahylly käyttää sisäisesti perustaa jonkinlainen maaginen
noin hasOne, hasMany, belongsTo, belongsToMany.
Ja niin yhdistelmä
Kahden voit tehdä aika paljon mitä haluat käyttää
olevan yhteydessä kuten Laravel kannalta
toiminnallisuutta kanssa tietokantoihin.
Joten, nyt mennä eteenpäin ja ottaa Tutustu yksinkertainen esimerkki
for Express app joka käyttää näitä malleja
ja kokoelmat Kirjahylly jazz [foneettisia].
Joten, olen perustanut vain yksinkertainen sovellus täällä.
Olen riisuttu pois joitakin juttuja joka alustetaan nimenomaista
ja siirtää sen osaksi init hakemiston, joka olen luonut.
Yksi mukavia asioita kanssa Express luulotelluksi
to Laravel on, että siellä on todellakaan ole paljon täytäntöön
teitä conventionalized.
Joten voit luoda hakemistoja -
se ei oikeastaan ​​anna sinulle paljon työtä pois.
Sinulla vain eräänlainen joidenkin perusasetukset ja sitten -
mutta se ei välitä mihin on ne.
Sinun ei tarvitse olla säätimen hakemistoon.
Sinun ei tarvitse olla malleja hakemistoon, config hakemistoon.
Voit tavallaan luoda myös ne projektin tarpeisiin
ja järjestää asiat niin että järkeä eniten sinua.
Joten sen sijaan, että kaikki tämä nimenomainen boilerplate
pääasiassa app.js juuri sanoin app tasavertaisten vaativat init / express.
Ja niin init,
alustetaan kansio En vain ole nimenomaista täällä,
ja tämä edellyttää Express, puhelut setup-toiminto, puhelut -
perustaa view moottori, JSON jäsennin, kaikki.
Joten nyt Jatketaan alas.
Joten olen edellyttävät kurssin ohjaaja kokous
ja vaatimukset malleja.
Joten nämä ovat kansioon, joka Olen juuri päättänyt nimen malleja.
Sen ei tarvitse olla, että tapa kuitenkin on järkevää,
mutta mallit on vain melko yhteisiä, joten haluan suositella sitä.
Mutta - Joten mennään Kurssille.
Taidan käyttäen - joo, ja esimerkit
tänne kaikki perustuvat ympäriinsä tietenkin mallia.
Joten haluan vain ottaa Katsokaa tuota.
Joten, nyt vain on ensimmäinen rivi tämän mallin,
Olen jo vaativat jotain muuta.
Joten jos huomaat solmussa sinun pitäisi olla vaaditaan
tai aiot päätyä vaativat koko joukko
eri tiedostojen , jotka sijaitsevat
eri paikoissa sovelluksessa.
Ja suhteelliset polut sinne, missä olet
nykyisessä sovellus,
ellei se ole huipputason jo määritellään kuten olet asentanut sen
MPM kuten kirjahyllyyn tai Knex tai Express tai jotain,
tämä ei ole suhteellista.
Kyllä? Suurentaa enemmän?
OK. OK. Joten, olet menossa päätyvät vaativat läjän
vain eri tiedostoja koodia, mikä on hyvää ja huonoa.
Hyvällä tavalla tiedät missä asiat ovat ja se ei ole tavallaan
taikuutta, mitä on meneillään konepellin alle,
joka voi olla todella hämmentävää
kun on hyvin raskas Java -
tai erittäin raskas puitteet, kuten Laravel, joka tavallaan kertoo,
aiomme huolehtia Tämän niin sinun ei tarvitse
vaatia kaiken mutta sinulla on
tietää miten kaikki toimii voidakseen käyttää sitä.
Jos kuten tässä tapauksessa, se on hyvin yksinkertaista, että
jossa kaikki on, he vain päät
asti on hieman kirjoittamalla.
Aivan kuten puolella pidän käyttää, siellä plugin
jos käytät sokea tekstiä
jossa voit asentaa solmu moduulit auttaja ja voit aloittaa
kirjoittaa kuten Ohjaaja ja se luo suhteellinen polku
missä olet, että koodipäivitystiedostoa, tavallaan hyödyllinen.
Niin, tietenkin malli edellyttää, base tässä
ja sitten pohja harjoittelija vaatii init / kirjahylly
ja sitten kirjahylly, se edellyttää huipputason kirjahylly
ja sitten alustaa sen kanssa alustettu Knex esimerkiksi
joka asettaa asiakkaan nimi
ja yhteys asetuksia tietokantaan.
Joten olen vain käyttämällä yksinkertaista esiintymä Sequel Pro, joka -
MySQL, olen päästä sen Jatko Pro ja se on vain eräänlainen
samanlaisen tietokannan setup koska meillä oli
ensimmäisessä näytteessä hakemuksen kanssa kurssiluetteloon.
Joten, minä käänsin yhteys asetuksia tässä
ja nämä ovat kaikki dokumentoitu on Knex.js projektisivu
siitä, miten setup nämä yhteydet.
Joten, minulla on nyt minun perusmalli.
Ja kuten mainitsin kanssa prototyyppi muutos,
jotta voi todella olla eräänlainen paljon -
lisää paljon boilerplate koodisi niin yleissopimus
, jota on mukautettu by Backbone.js
ja nyt Bookshelf.js on Lisää tämä laajentaa menetelmää
staattisena kiinteistön JavaScript esineitä,
joka antaa sille eräänlainen lähes luokka-pohjainen perintö luonto
jos jos soitat ulottuvat voit perustaa
prototyypin menetelmien että haluat tässä
Ja sitten voit - kaikki extra staattinen menetelmät
että saatat haluta, sinun voi vain asettaa niitä itse
täällä, jotta voin jatkaa sitä kanssa - joten jos esimerkiksi
useampia malleja tarvitaan näyttää nimen ja tämän saada nimi.
Niin, tässä, en sano näyttönimi malli
oletuksena on jonka nimen Omaisuus on muuten paluu
no name.
Ja nyt jokainen malli, joka on -
joka ulottuu tämän perusmalli, I nyt näyttönimi menetelmä
prototyyppi ketjun jonnekin.
Ja jos haluan korvata sen Voin vain asetukset - määrittää mitä -
getName olisi täällä.
Ja sen avulla voit jäljitellä klassinen perintö
JavaScript, joka voi olla kiva erityisesti asioita
jotka soveltuvat ollessa luokka perustuu, kuten kohteen malleja.
Joten hypätä takaisin sovelluksen koodi.
Joten minulla reitin vain slash, vain minun indeksi
ja sitten slash kursseja.
Ja molemmat vaativat renderCourses menetelmällä.
Joten jälleen, toiminnot ovat ensimmäisen luokan ja voidaan siirtää
argumentteina menetelmiä.
Eli tässä app.get, Soitan -
Ohitan renderCourses argumentiksi.
Ja tehdä - tai toimintoja voidaan setup kuin var -
kuten tein aiemmin var renderCourses vastaa toiminto
tai ne voivat olla vain toiminto renderCourses.
Se ei tee liian paljon eroa.
Voit itse olla mitä kutsutaan nimellä toiminto
ilmaisuja, jotka ovat var renderCourses tasavertaisina
toiminto renderCourses.
Ja syy haluta olla name toimintoja erityisesti
solmussa on se, että saat siivooja -
luettavampi kutsupinon.
Joten jos sinulla on koko joukko
anonyymien toiminnot se sanoo -
kun on virhe koodissa Otat -
et tiedä mikä funktio se soittaa sinun täytyy katsoa
klo koodinumero ja rivinumero
ja se on joskus helpompaa vain visuaalisesti jäsentää
kun itse on nimiä
säädettyihin tehtäviin itse palvelimen puolella.
Joten tämä renderCourses, kutsukaamme solmun apps -
joten olen kuuntelee Core 3000 [foneettisia].
Ja niin kaikki tämä tekee oikeutta tässä on vain saada kaikki
kurssit tietokannasta.
En edes rajoittamaan sitä niin se tekee valtava määrä
Rivien se palaa.
Ja jotta tehdä tämän,
kurssin malli siellä on staattinen omaisuutta
nimeltään kokoelma.
Ja niin minä vain kutsua sitä - I sanoi luoda uuden kokoelman
Kurssin, ja sitten noutaa sen,
ja palata sitten kurssit kokoelma täällä lupaus.
Niin sisäisesti, David - Viimeisen puolen opetti hieman
noin lupaukset ja lupaukset ovat käytetään hyvin voimakkaasti molemmissa Knex
ja kirjahylly koska se lainaa -
se antaa sinulle kyky on nippu
Eri asynkronisen puhelut ja tavallaan liittyä sitten yhteen
tai hakea jotain, ja sitten
tätä kehotusta toisen asynkroninen tietokanta puhelu
ja palauttaa tämän arvon ja sitten hypätä seuraavaan sitten
ja seuraava sitten ja sitten on kiinni aivan lopussa lajitella
ja matkivat asynkroninen try catch käyttäytymistä asynkroninen koodi,
koska näette sen nyt
mutta se on vielä vaikeampaa kerran aloitat käsitellä sitä.
Asynchronous koodi on aivan kaikkialla
palvelimen side JavaScript ja todella paljon suuremmassa määrin
kuin olet tottunut, jos olet tehnyt JavaScript
asiakkaan puolelta.
Niin, että todella, todella auttoi sinua siellä.
Mutta vain näyttää debuggeri lausuma
että puhuin vuonna solmu tarkastaja työkalut,
Aion mennä eteenpäin ja heittää debuggeri linja täällä
vuonna renderCourses toiminto ja nähdä, mihin se johtaa minut
kun minä - niin solmu tarkastaja voidaan asentaa
tekemällä NPM Asenna jossa G lippu,
mikä tarkoittaa, Global Solmu Inspector.
Ja se tulee hakemaan sen NMP ja asenna se maailmanlaajuisesti
sovelluksille joten voit kutsua sitä
komentoriviltä.
Olen jo asentanut niin menen eteenpäin ja -
Lisäksi se saattaisi olla odottaa se täytyy vain kestää,
kestää kaksi sekuntia.
Ja mitä solmu tarkastaja uudelleen voit
tehdä, on olla tämä päätön versio debuggeri konsolin
että olet tottunut työskenneltäessä asiakkaan puolelta ja pystyä
lopettaa, vain lisää määritettyä kohdat koodissa.
Pysähtyä toteutus ja ottaa katsoa, ​​mitä on tekeillä,
mikä olisi oikeastaan olla hyvä, jos ominaisuus
kuten jotka olivat käytettävissä
kun virheenkorjaus PHP olen varma.
Joten haluan vain ottaa Katsokaa tuota.
Joten voin vain soittaa solmu tarkastaja
ja se tulee sanoa käydä tässä URL portti 5858 aloittaa virheenkorjaus,
se on vain oletus miten se käynnistyy.
Joten, olen nyt saanut - siellä mitään tekeillä
koska minun täytyy aloittaa.
Joten solmu umpikuja [foneettinen] debug lippu ja sitten app.js.
Niin se sanoo debuggeri kuuntelee porttia 5858,
Express-palvelin kuuntelee on 3000.
Joten olemme hyvä mennä.
Haluan vain päivitä tämä.
Ja nyt näen app.js koodi, joka olin vain katsomalla
mutta täällä konsolin.
Joten nyt, jos yritän ajaa tätä, näet sen, se pysähtyy.
Se vain odottaa, koska sen koko koodin suorittamisen on nyt
pysähtyi tällä debuggeri line että olen laittaa sinne.
Ja voin nyt palvelin -
[Inaudible Huom!]
Ai niin. Mikä on avainsana pikakuvake zoomata näytön?
Voi ei.
Sain sen. OK.
[Tauko]
Voi, se ei ole etsimässä [Foneettisia] että.
Joten, kurssit on todella iso
koska en tee rajoittaa lauseke tai mitään,
se vain hakemalla koko tietokanta kursseja
jotka ovat paljon niitä.
Ja niin - mikä on esine
joka todella saattaa kaatua huomautus tarkastaja oikeusasteessa.
Se on - OK.
Anna minun tehdä raja ja Sitten voimme katsoa
kun sitä ei hakemalla satoja kursseja.
Joten, tappaa palvelin ja tarkastaja
ja minä teen kurssin kokoelma kyselyn raja 20.
Joten, kirjahylly, toisin kuin Laravel
jossa voit vain soittaa rajoittaa suoraan tai soittaa mitään
Näiden SQL menetelmien että käytät
on suoraan ORM oikeusasteessa.
Anytime, että käytät vain SQL menetelmä, joka on varustettu
vuonna Knex, joudut soita kyselyn lajitella
ja hyödyntää kyselyn ketjuun.
Ja tämä voidaan vedota joko toiminto,
joten voit sanoa, toiminto tämän rajan 10 tai soitat sitä
määrittämällä joka Menetelmä haluat soittaa
on Knex esimerkiksi ja sitten joka arvo.
Joten aiomme tehdä rajoittaa 20 ja sitten asettaa.
Emme itse asiassa tarvitset debuggeri täällä
Koska emme voi vain asettaa raja-arvot
ja joka helpottaa.
Selvä.
Joten, nyt asettaa breakpoint täällä ja yrittää sen lataamista.
Väärä linja.
Täällä.
[Tauko]
OK. Niin se pysähtyi jälleen.
Joten nyt kurssit on esineeseen pituus 20
ja voimme nähdä kaikki eri malleja, jotka se on haettu
tietokannasta täällä joten minulla malliobjektin
joka on sisällä attribuutteja omaisuutta
Object ovat kaikki asioita että se on löytynyt tietokannasta.
Tapahtumia, jotka ovat rekisteröity
joten voit ilmoittautua erilaisia ​​tapahtumia,
esimerkiksi silloin, kun Mallia poistetaan
tai kun se on haettu,
voit asettaa eri ominaisuuksia tai muuttaa asioita.
Siellä on paljon erilaisia ​​koukkuja ja nämä ovat kaikki dokumentoitu
vuonna Bookshelf.js asiakirjat, joiden avulla voit
tehdä tavallaan mitään että todella haluat tehdä
kanssa malleja ja kokoelmista.
Voit - he tarkoitus olla todella muokattavissa
ja todella helppo voit mukauttaa niitä
sen tarpeisiin sovellus.
Mutta juuri katsellut täällä,
Voin nähdä, mitä eri kurssit ovat saatavilla.
Ja tässä tapauksessa, I oikeastaan ​​ei hae
kanssa muita tietoja kuin vain kursseja itse.
Mutta samalla tavalla kuin Kaunopuheinen ORM voit asettaa
suhteitaan, joten kurssin kuuluu monia ohjaaja.
Joten, jos menen eteenpäin ja lopeta sovellus,
hypätä tähän noutaa puhelun, voit voi määrittää eri vaihtoehtoja
että haluat kulkea pitkin sitä.
Ja yksi niistä on kyky ladata syykoodilistoja
määrittämällä withRelated ohjaajien sitten kursseja.
Joten mennään takaisin ja tuoreen tämä täällä ja lopettaa uudelleen.
Joten nyt, kurssit vastustaa sama määrä malleja
mutta nyt jokainen malli on suhteet hash
mikä on ohjaajien että se liittyy.
Joten tämä kurssi esim
joka on tietysti 082 on kaksi liittyvät ohjaaja malleja.
Ja voit jo nähdä, miten paljon helpompaa tämä on lajitella
visuaalisesti työstää kuin kun olet tekemisissä juttuja
että olet tavallaan muuttaa koodia ja yritä sitten uudestaan ​​PHP.
Se, että voit vain lopettaa suorittamisen kokonaan
ja arvioida, mitä on täällä ja - konsoliin, -
loitontaa, kursseja on, tiedät,
mitä se paikallinen soveltamisala muuttujat ovat käytettävissä
ja tämä on tällä hetkellä maailmanlaajuinen objektin koska kuten näitte sen,
ellet soita erityisessä yhteydessä, se ei tule
olla jotain merkitystä tässä.
Ja sitten, - haluan näytä muutamia esimerkkejä
täytäntöönpanoa lupauksia.
Joten sen sijaan tehdä tämän withRelated ohjaajien tässä olen
menossa mennä eteenpäin ja siirtää tämän hakemaan ja sitten kurssit,
Aion palata courses.load ohjaajia.
Ja sitten - sitten soitat sitten.
[Tauko]
Niin sitten tässä vaiheessa, kurssit pitäisi latautua
kanssa ohjaajien, joka on asynkroninen toiminta.
Mutta koska olemme palauttamalla sen alkaen lupaus, seuraava arvo
sillä silloin on mitä tämä asynkroninen puhelu palaa
joka tässä tapauksessa kuormitus on menetelmä, kirjahyllykaiuttimet
joka todella palauttaa kokoelma itse.
Joten se lastaus ohjaajien siellä
ja sitten voit määrittää - jos se on vain yksi kohde,
voit määrittää tämän string, muuten
voit tehdä ohjaajien ja vaatimukset
menetelmänä - anteeksi, kuten array.
Ja sitten jos haluat saada todella hieno ja rajoittaa millään
nämä määrätyt n hakeminen, sinun voi määrittää sen hash
ohjaajien ja mitä sitten haluat rajoittaa kyselyn.
Joten, haluaisin ladata kaikki ohjaajien kursseilla, jossa -
joten QB varten kyselyn rakentaja jos tila on aktiivinen.
Ja voit saada todella fancy tahansa
ja aiheeseen liittyvät kyselyt haluat rakentaa.
Mutta juuri nyt, aiomme pitäytyä vain ohjaajien
ja olemme palaamassa että arvo
niin sitten seuraavaksi sitten pitäisi on kaikki kurssit ladattu
oikein.
Ja jos oli virhe missä tahansa askel tässä ketjussa,
se hyppää alas saalis.
Joten mene eteenpäin ja ajaa sitä.
Joten aina - toisin kuin PHP, yksi haittapuoli on
"Koska solmu" on pitkään käynnissä prosessi, todella tarvitset
lopettaa solmuun prosessi kuin päivität koodin,
koska version, että se on käynnissä ajoaika on,
versio koodi, joka oli ladattu
kun ei alkanut mitä sinulla on tavallaan
on päivittänyt koodin kanssa sen jälkeen.
OK. Me asettaa breakpoint täällä, täällä ja virkistää.
[Tauko]
Voi, en oikeastaan ​​ei päivitä tämä sivu joko
niin se oli vanha prosessi.
Joten voit virkistää sekä tämän ja solmun tarkastaja.
Joten nyt näemme kursseja.
Jos me vain ottaa näyte yksi näistä malleista,
voimme nähdä, että suhteet esine on tyhjä, mutta nyt -
ja syystä, että tarvitset asettaa raja-arvot on hyvin,
Mainitsin, että voit hypätä pinojäljitys
ja katso tiedätte, missä se menee App.
Joten nyt voin nähdä, mitä tapahtuu kuorman menetelmä,
jonka olen määritellyt kokoelmista.
Se tavallaan "Eager kuormien suhteet päälle jo ".
Ja voit selata ja katso rivi riviltä
jos tätä tavaraa on menossa mikä on hienoa.
Jos sinulla on jotain joka on rikki koodissa,
se heittää jokin virhe ja et pidä, en todellakaan halua
nähdä, mihin tämä on menossa.
Mutta heti kun olet joutunut jotain asynkroninen, -
se siirtyy seuraavalle rasti tapahtuman silmukka
ja menetät - menetät paikkasi
solmussa tarkastaja.
Joten sinun täytyy sanoa, "OK, kun häviän tämän,
se tarvitsee lopettaa nyt Tämän linjan uudelleen. "
Koska jos minä löi alas, alas pino,
se on lopulta vain mennyt pois jos en olisi asettanut tämän
linja 22 sininen break viiva.
Joten nyt, jos katson klo kursseja täällä,
pitääkin on suhteessa ohjaajien
ja sitten ohjaajien kiinnitä ne.
Joten, voit nähdä, että palasin lupaus ensimmäisestä lupaus
Ja sitten voit jatkuvasti tehdä ruodussa.
Joten eri lupaus, luvata kirjastot,
Käytin yksi nimeltään Bluebird joka on todella hyödyllinen.
Se lisää paljon mukavia tämän muuttaa asynkroninen -
muuttuviin soittaa takaisin base koodi tavaraa
joka toimii hyvin lupauksia.
Mutta - anteeksi [kuultavissa] mitä Aioin sanoa se siellä.
Katsotaanpa katsomaan joskin -
niin sanotaan, että siellä oli Ongelma noudettaessa jotain.
Joten minulla on tämä toinen reitti löytää kutsutaan kurssin tunnus.
Tehdäänpä kurssi 2.
Saan - JSON kurssi.
Ja tämä ei [kuultavissa].
[Tauko]
Haistan jotain pielessä.
Ei 3000, olin Chrome tarkastaja välilehti.
OK. Joten mennään Tietenkin - JSON kurssi 1.
Ja tämä palaa vain JSON muodossa, kurssin ladattu
jopa joidenkin ohjaajia.
Mutta esimerkiksi halusin antaa tässä, että
Teen JSON kurssin tunnus.
Ja noutaa parametrit, Olen täsmennetään vaativat totta,
joka on vaihtoehto, joka on dokumentoitu Kirjahylly
jos se sanoo, että "Jos Yritän löytää tämän kurssin
ja se ei ole siellä, sitten heittää virhe. "
Ja että pitäisi kuulua catch tänne.
Joten mennään eteenpäin ja hypätä takaisin osaksi solmu tarkastaja ja yrittää
ja rikkoa tätä ja mitä meillä.
Joten asettaa tauko täällä JSON kurssin.
Selvä.
Menen JSON kurssin ja Haluan vain laittaa hieman -
[Tauko]
Se voi olla hieman hankala joskus kun yrität
hallita joista yksi on virkeänä
ja jotka eivät ole - Katsotaanpa.
Joten se soittaa virhe tyhjän vastauksen.
[Tauko]
Heitetään debuggeri täällä.
Koska kuinka solmun todella optimoi
varten JavaScript runtime olla niin nopea palvelimella,
joskus solmu debuggerilla on joitakin virheitä, kun yrität
ja asettaa raja-arvot dynaamisesti ja te todella tarvitsevat
käyttää debuggeri ja ei rivi-riviltä.
Katsotaanpa, jos tämä saa meidät mitä haluamme.
Niin otan, app.get json kurssin id,
ja olen asettanut debuggeri siellä
saaliissa lausuman alareunassa.
Nouda vaativat totta, se olisi - kunnossa, siellä mennään, rikkoi.
Joten, nyt näen että se lopetti
Tämän lopullisen catch koska withRelated -
tai koska vaativat totta määritelty eikä ole tietenkään
ID-Tämän suuren numero kautta poikkeus
joka on nyt Emessage.
Ja jokainen virhe JavaScript on pino omaisuutta
että tulee yhdessä sen kanssa.
Joten se on usein hyödyllistä Jos haluat esimerkiksi
konsoli kirjautua ulos e.stack.
Ja voin todella nähdä kun lyön virhe.
Joten saan virheilmoituksen tyhjä vastaus, se on viesti
joka lähetetään kirjahyllyyn.
Mutta nyt voin katsoa klo klo kutsupino ja nähdä
että kirjahylly murteita SQL malli 83,
Tämän tyhjän vastauksen virhe heitettiin.
Ja tässä minä mainittu, se on piste nimetön
koska se on nimetön toiminto.
Jos tämä olisi nimen toiminto olisit parempia ideoita
johon toiminto itse asiassa kautta ilman mennä
osaksi model.js koodi.
Vaikka se on tarkoitus olla melko, melko luettavissa,
jotta voin nähdä, että verkossa.
Mitä ne kertovat minulle oli linja 83.
Joten, jos options.require ja vastaus ei ollut olemassa,
se nyt heittää uuden tyhjän vastauksen virhe.
Voit siis nähdä melko suoraviivainen miten se toimii.
Ja sisäisesti kirjahylly,
Siellä olet vain koko nippu käytön lupauksia.
Joten voit määrittää Promise.method
kanssa Bluebird kirjasto joka pitää oikeassa asiayhteydessä
Tämän kun palaat lupaus.
Ja niin olen - olen sitovia arvo tämän kaltaiset
mitä olin mainitut aikaisemmin, mutta käyttäen lupauksia
ja sitten voin - on uusi.
Se voi olla asynkroninen tai jos haluan.
Ja sitten tehdä joitakin muita asioita, jotka voivat
tai ei voi olla asynkroninen ja niin monenlaisia ​​hyppyjä alas tämän.
Joten Promise.all on auttaja, joka paljon suosittuja kirjastoissa on
jossa voit olla joukko mahdollisesti voi
tai eivät ole lupauksia.
Ja kun kaikki ne ovat valmis, palaat että
ja sitten se hyppää seuraavalle riville
ja voit nähdä, miten se todella tasoittuu pyramidi
että saat, soittopyynnön helvetin sen tunnetuista
jos teet kaiken kanssa kutsuja rivi riviltä.
On olemassa tapoja kiertää sitä, mutta lupaukset ovat yksi
parhaista tavoista mielestäni
todellakin pitää koodi puhdas ja helppo lukea.
Niin, että on vain lyhyt Johdatus JavaScript
ja kirjahylly ja Knex yleensä.
Ja jos on kysyttävää, Tiedän, se on ton materiaalin
tavallaan yrittää kansi varsinkin kun kielet,
Toisin kuin useimmat, että olet perehtynyt joten halusin
tehdä se niin, että ainakin jos sinulla on ongelmia
koodin kanssa, sinun voi tavallaan hypätä -
se mitä haluan tehdä, on tavallaan hypätä kirjastot
että olen käyttäen ja katso miten asiat ovat rakenteeltaan.
On yksi että olin maininnut aiemmin nimeltään Backbone.js
ja itse asiassa se on [Äänetön] asiakkaan puolella
auttaa antaa mallin näkymä ohjain rakenne
koodisi.
Mutta tosiasiassa se on selityksineen dokumentaation lähde
jonka avulla voit tavallaan nähdä.
Se on todella hyvin dokumentoitu, mitä on tekeillä,
miten se kohensi Ajax toiminnallisuutta
tai tapahtuman toimintoja tai malleja ja kokoelmat lajitella
selittää mitä meneillään prosessi.
Ja jos ymmärrät perusasiat JavaScript
kuten prototypal perintö ja miten toimintoja käytetään
koska sekä esineitä ja arvot ja luokat ja kaikkea.
Se tekee siitä paljon helpompaa ymmärtää, mitä tapahtuu
on potentiaalisesti kirjastot että käytät
ja debuggeri koodi ja pystyttävä to ei hakkaa päätäsi
seinää vasten, koska et ymmärrä, miten
eri palaset työskentelevät, niin.