>> Taigi, su tuo, kas pasakyta,
tiesiog tarsi paprastas Įvadas į prototipus
ir "JavaScript" objekto modelį.
Mes neketiname pereiti įrankių truputį pasikalbėti
apie daugiau JavaScript serverio ir Leidiniai Biblioteka
ir ryšys Knex biblioteka.
Taigi, jūs iš tikrųjų galite tiesiog -
jei ieškote Bookshelf.js ji turėtų būti gana lengva
rasti, pirmiausia turėtų būti rezultatas, ir Knygų lentyna
David paminėta tik suteikia struktūrą daug
aplink JavaScript objektų ir dirbti su jais relationally
reliacinėse duomenų bazėse.
Taigi, iš panašių daug funkcijų kas iš tikrųjų labai įkvėpė
pagal Laravel anketa ORM kaip pat Backbone.js,
tai priekis MVC biblioteka, kuri leidžia jums
sukurti savo kodą, panašus į tai, ką aš rodžiau
su pavyzdžiais prototipai, kur galite -
o ne tik savavališkai mesti klases
savo nuomonėmis čia ir ten.
Jis suteikia jums modelius ir kolekcijos šių modelių
kuri turėtų veikti kaip tarsi vienas taškas tiesos
apie duomenims jūsų paraiška.
Ir tada jūs klausytis, kaip tie modeliai pokyčiai, jūs sakote, gerai,
vėl teikti šį šabloną čia ir tai vienas per čia
ir ne tik pridėti klasės čia pridėti klasės ten ir tarsi pasiimti
į selektoriai ir padaryti spiderweb JQuery kodą.
Tai suteikia daugiau klasės pagrindu struktūra atskirų gabalų,
bet svarbi kad biblioteka yra modeliai
kurie turi panašią struktūrą ką Leidiniai modeliai padaryti.
Taigi, jei esate susipažinę su Lentynoje esate gana taip pat
gana gerai susipažinęs su Backbone.js modelius,
ir aš norėčiau rekomenduoti atsižvelgiant į tai pažvelgti.
Taigi, kai kurie iš pagrindinių funkcijų
kad ji suteikia jums tiesiog gebėjimas nustatyti duomenis apie objekto
skambinti atnešti, kuris grąžina individualų įrašą
iš duomenų bazės, sukurti santykiai su panašiais
ką jūs nagrinėjami ribose, Laravel
kur jūs galite pasakyti pacientas rekordą metodą
ir tai sakau laimėjo rekordą
kur įrašo objektas Lentelės pavadinimas sveikatos įrašus.
Pažiūrėkime.
Turi daug - ji priklauso -
tiesiog stuff, kad jūs gana panašus -
gana gerai susipažinęs su jau, bet "JavaScript".
Ir po gaubtu, už leidinius,
ji naudoja užklausos statybininkas vadinamas Knex.js.
Taigi, tai Knex, knexjs.org.
Tai nuoroda į žaislo, jei kas nors kada nors grojo su tai.
Tačiau ji leidžia - į panašiai, JQuery,
jūs tiesiog tarsi sukurti grandinės įvairių metodų
kad jūs skambinate į savo duomenų bazė eilutėje, todėl jūs galite -
jums pradėti, sakydamas Knex ir lentelės vardas.
Taigi, pavyzdžiui, Knex vartotojams, pasirinkite, kuriuos stulpelius norite,
kur ir yra kitoks, jei Conditionals ir jūs galite turėti
Ir kur, arba kai kur tarp jų, kur nėra,
jūs dabar žemyn linija.
Galite nurodyti skirtingi prisijungia tarp savo duomenų bazės lentelių
kuris Leidiniai naudoja viduje sukurti tarsi magija
aplink hasOne, hasMany, belongsTo, belongsToMany.
Ir taip kombinacija
iš dviejų jums padaryti gana daug kas norite būti naudojami
į sistemą, kaip Laravel požiūriu
funkcionalumo dirbti su duomenų bazėmis.
Taigi, eikime į priekį ir imtis į paprastą pavyzdį atrodo
už Express programą, kuri pasinaudoja šių modelių
ir kolekcijos Knygų lentyna džiazo [fonetinė].
Taigi, aš įsteigti tik paprasta programa čia.
Aš atimta iš kai kurių dalykų kad buvo iniciacijos aiškios
ir judėti, kad į init katalogas, kurį aš sukurta.
Vienas iš naudingų dalykų apie dirbant su Express kaip turėtų
į Laravel yra tai, kad nėra tikrai ne daug vykdomas
jums sąlyginių.
Taigi galite sukurti katalogus -
tai tikrai ne jums visai daug dirbti off.
Jūs turite tiesiog tarsi kai Pagrindiniai nustatymai ir tada -
bet tai nerūpi kur jūs juos.
Jūs neturite turėti valdytojo katalogas.
Jums nereikia turėti modelius katalogas, config kataloge.
Jūs galite rūšiuoti sukurti tų, kaip jūsų projekto poreikius
ir nustatyti viską kelią kad prasmės labiausiai jums.
Taigi, vietoj to, kad visi tai aiškus Standartiniai
Pagrindinė app.js aš ką tik pasakė app lygu reikalauja Init / Express.
Ir taip per init
Inicijuojama aplankas Aš tiesiog išreikšti čia
ir tai reikalauja Express skambučius sąrankos funkcija, ragina -
nustato regos variklį, JSON analizatorius, visa tai.
Taigi, dabar, tegul toliau žemyn.
Taigi, aš reikalauti Žinoma instruktorius susitikimas
ir reikalavimai modeliams.
Taigi tai yra aplanke kad Aš tiesiog nusprendžiau pavadinti modelius.
Ji neturi būti, kad būdas, tačiau jis turi prasmę,
bet modeliai yra tik gana bendro todėl norėčiau rekomenduoti jį.
Bet - Taigi eikime už kursą.
Manau, aš naudoju - yeah, ir pavyzdžiai
žemyn čia yra pagrįstos aplink kurso modelį.
Taigi galime tiesiog atrodo, kad.
Taigi, dabar, tik iš Pirmoje eilutėje šį modelį,
Aš jau reikalauja kažkas.
Taigi, jei jūs pranešimas mazgas jums turėtų būti reikalaujama,
ar jūs ketinate baigti reikalaujant visa krūva
iš įvairių failų kad yra
skirtingose ​​vietose jūsų paraiška.
Ir santykinis takai ten, kur esate
savo dabartinio taikymo,
nebent ji jau yra aukščiausio lygio apibrėžiamas kaip jums ją įdiegti
su MPM kaip Bookshelf arba Knex arba Express "ar kažką,
jie yra ne giminaitis.
Taip? Padidinti daugiau?
Gerai. Gerai. Taigi, jūs ketinate galų gale reikalauti visa krūva
tiesiog skirtingi failus į savo kodas, kuris yra geras ir blogas.
Geras būdas jums žinoti, kur viskas yra ir tai nėra tarsi
magijos, kaip į tai, kas vyksta po gaubtu,
kuris tikrai gali būti painu
kai turite labai sunkiųjų Java -
ar labai sunkus sistema kaip Laravel, kuris tarsi sako:
mes ketiname imtis atsargumo tai, kad jūs neturite
reikalauti viską bet jūs turite
žinoti, kaip viskas dirba, kad jį naudoti.
Jei, kaip šiuo atveju, tai labai paprasta, kaip kad
kur viskas yra, Jie tiesiog baigiasi
gale buvo šiek tiek daugiau rašyti.
Lygiai taip pat kaip pusės man patinka naudoti, yra įskiepiai
jei jūs naudojate pro tekstą
kur Jūs galite įrengti mazgas moduliai pagalbininkas ir galite pradėti
tipo kaip instruktorius ir ji sukuria santykinį kelią
kur esate, kad kodas bylą, rūšies naudinga.
Taigi, žinoma, modelis yra reikalaujama bazę čia
ir tada pagrindas vidaus reikalauja paleidimo / lentynoje
ir tada Leidiniai, jis reikalauja aukščiausio lygio Bookshelf
ir tada inicijuoja jį su inicializuoti Knex pavyzdžiui,
kuriame kliento pavadinimą
ir prijungimas parametrus duomenų bazėje.
Taigi aš tiesiog naudojant paprastą egzempliorius tęsinys Pro, kuri -
MySQL, aš jį gauti su Tęsinys Pro ir ji tiesiog tarsi
panašios duomenų bazėje nustatymas kaip mes turėjome
pirmojoje imtyje taikymo su kursų kataloge.
Taigi, galiu nustatyti ryšį parametrai čia,
ir visa tai yra dokumentuojama ant Knex.js projekto puslapyje
kaip sukonfigūruoti šie ryšiai.
Taigi, dabar turiu bazinį modelį.
Ir kaip jau minėjau, su prototipas kaita,
taip, kad iš tikrųjų gali būti natūra, siekiant daug -
prideda Standartiniai daug savo kodą, konvencija
kad buvo pritaikyta pagal Backbone.js
ir dabar Bookshelf.js yra pridėti šį pratęsti metodą
kaip statinis turtui jūsų "JavaScript" objektai,
kuris suteikia jai beveik rūšiuoti klasė pagrindu paveldėjimo pobūdis
kur, jei Jūs skambinate išplėsti galite nustatyti bet
prototipas metodų kad jūs norėtumėte čia
ir tada galite - bet extra statinius metodus
kad jūs galbūt norėsite, jūs gali tiesiog nustatyti jiems save
iš čia, kad aš galiu jį pratęsti - taip, jei, pavyzdžiui,
kelis modelius reikia rodyti vardą ir šį vardą gauti.
Taigi, čia aš sakau Rodomas pavadinimas modeliui
pagal nutylėjimą yra koks jo vardas turtas yra kitaip grąžinimas
no name.
Ir dabar kiekvienas modelis, kuris yra -
kuri tęsiasi šį bazinį modelį, aš dabar turi Diskusijų vardo keitimo metodą
nuo prototipo grandinė kažkur.
Ir jei aš noriu jį perrašyti Galiu tik jį - nustatyti, kas -
getName būtų čia.
Ir tai leidžia jums imituoti klasikinis paveldas
JavaScript, kuris gali būti gražus ypač dalykų
, kurie skolinti patys yra klasė pagrįsta kaip objektų modelius.
Taigi galime peršokti atgal į paraiškos kodą.
Taigi aš turiu tik už maršrutą velniop, tiesiog mano indeksą
ir tada velniop kursus.
Ir abu jie skambina renderCourses metodas.
Taigi dar kartą, funkcijos pirmos klasės ir gali būti perduota
kaip argumentų metodus.
Taigi, šiame app.get, Vadinu -
Aš artimųjų renderCourses kaip argumentas.
Ir padaryti - arba funkcijoms galima sukonfigūruoti kaip var -
kaip aš darau anksčiau var renderCourses Lygu funkciją
arba jie gali būti tik funkcija renderCourses.
Tai nereiškia, kad per daug skirtumų.
Jūs iš tikrųjų galite turėti tai, ko vadinami vardas funkcija
terminai, kurie yra var renderCourses lygu
funkcija renderCourses.
Ir priežastis, kad norite turėti pavadinimas funkcijas ypač
į mazgą, kad jis suteikia jums švaresnis -
aiškesniu kamino pėdsakų.
Taigi, jei turite visa krūva
anoniminių funkcijų ji sako -
kai turite klaidą Jūsų kodas You'Ll -
jūs nežinote, kokia funkcija jis skambina jūs turite ieškoti
tuo kodą ir eilutės numeris
ir tai kartais lengviau tik vizualiai apdoroti
kai jūs iš tikrųjų turi vardus
toms funkcijoms, patys serverio pusėje.
Taigi tai renderCourses, tegul vadina mazgas programas -
todėl aš klausosi Core 3000 [fonetinė].
Ir taip visa tai darote čia yra tiesiog gauti visi
kursai iš duomenų bazės.
Aš net apriboti ją todėl daro didelį skaičių
Eilių jis grįžta.
Ir tam, kad tai padaryti,
ant kurso modelyje yra statinis nuosavybė
vadinama kolekcija.
Ir todėl aš tiesiog vadina jį - aš sakė sukurti naują kolekciją
šį kursą, ir tada paimti jį,
ir tada grįžti į kursus kolekcija čia pažadą.
Taigi viduje, Dovydas - Pastaruosius pusę mokomi šiek tiek
apie pažadus ir pažadai naudojama labai daug tiek Knex
ir Leidiniai nes jis skolina -
Jis suteikia jums Galimybė turėti krūva
iš skirtingų asinchroniniai skambučiai ir tarsi sujungti tada kartu
arba atnešti kažką, o tada
su tuo kvietimu kitą Asinchroninis duomenų bazė skambutis
ir grįžti tą vertę ir tada pereiti į kitą tada
ir kitą, tada ir tada sugauti pačioje pabaigoje rūšiuoti
mimikos asinchroninis bandymas laimikis elgesys su asinchroniniu kodą
nes jūs matote jį dabar
bet tai dar sunkiau, kai pradėdami su ja kovoti.
Asinchroninis kodas yra tiesiog visur
ir serverio pusėje "JavaScript" ir tikrai, kad gerokai didesnę
nei esate įpratę, jei padarei JavaScript
kliento pusėje.
Taigi, kad tikrai, tikrai padėjo jums ten.
Bet tik parodyti jums Debugger apsauga
kad aš kalbu, apie mazgas inspektorius įrankiai
Aš ruošiuosi eiti į priekį ir mesti debugger liniją čia
į renderCourses funkcija ir pamatyti, kur tai veda mane
kai aš - taip mazgas Inspektorius gali būti įdiegta
daro NVV Įdiekite su G vėliava,
o tai reiškia, Global Mazgas inspektorius.
Ir jis bus parsiųsti jį NMP ir įdiegti ją visame pasaulyje
jūsų paraiškoms todėl jūs galite tik jį vadiname
iš komandinės eilutės.
Aš jau įdiegta tai, kad aš eisiu į priekį ir -
iš tikrųjų tai gali turėti laukti tai bus tiesiog,
imtis dvi sekundes.
Ir ką mazgas inspektorius vėl leidžia jums
padaryti, tai turėti šią begalvis portalo debugger konsolės
kad esate įpratę dirbdami kliento pusėje ir gebėti
sustoti, tiesiog pridėkite nurodyta nurodo savo kodą.
Stop vykdymą ir imtis pažvelgti į tai, kas vyksta,
kuris būtų tikrai praversti, jei funkcija
kaip kad buvo galima
kai derinate savo PHP kodą aš tikiu.
Taigi galime tiesiog atrodo, kad.
Taigi, galiu tik paskambinti mazgas inspektorius
ir jis pasakys, apsilankykite šią nuorodą uosto 5858 pradėti derinimo,
tai tik numatytasis kiek ji pradėjo veikti.
Taigi, aš dabar turiu - yra nieko vyksta čia
nes man reikia pradėti.
Taigi mazgas aklavietė [fonetinė] derinimo vėliava ir tada app.js.
Taigi jis sako, Debugger klausymas dėl uosto 5858,
Express serverio klausymas nuo 3000.
Taigi, mes gerai eiti.
Leiskite man tiesiog atnaujinkite tai.
Ir dabar matau app.js kodas, kuris man buvo tiesiog žiūri
bet čia konsolę.
Taigi dabar, kai bandau paleisti tai, jūs galite pamatyti jį, jis sustos.
Tai tiesiog laukti, nes jos Visas kodas vykdymas dabar
sustabdytas šio debugger linija, kad aš įdėti ten.
Ir aš galiu dabar serveris -
[Negirdima Pastaba]
O, taip. Kas yra raktinis žodis spartusis padidinti ekrano?
O ten yra.
Supratau. Gerai.
[Pauzė]
O, tai nežiūri [Fonetinė], kad.
Taigi, kursai tikrai didelis
nes aš ne daryti apriboti išlyga arba nieko,
tai tiesiog žavingas visos duomenų bazės kursai
kurios yra jų daug.
Ir taip - tai yra objektas
kad iš tikrųjų gali avarijos pastaba inspektorius atvejis.
<Input - Gerai.
Leiskite man padaryti ribą ir tada mes galime pažvelgti
kai jis nėra patrauklus šimtus kursus.
Taigi, nužudyti serverį ir inspektorius
ir aš padaryti kursą kolekcija užklausa riba 20.
Taigi, leidinius, skirtingai nei Laravel
kur Jūs galite tiesiog paskambinti apriboti tiesiogiai arba paskambinti į bet kurį
Šių SQL metodai kad jūs naudojate
tiesiogiai ant ORM instancijoje.
Anytime, kad jūs naudojate tik SQL metodas, kuris teikia
į Knex, turite skambinti užklausą rūšiuoti
iš bakstelėkite į užklausos grandinėje.
Ir tai gali būti taikoma su arba funkciją,
todėl jūs galite pasakyti, pareigos ši riba 10 ar jūs ją vadina
nurodant, kuri metodas norite skambinti
ant Knex pavyzdžiui ir tada kuris vertė.
Taigi, mes ketiname daryti apriboti 20 ir tada nustatyti.
Mes iš tiesų nėra reikia Debugger čia
nes mes galime tiesiog nustatyti ribines vertes
ir kad lengviau.
Gerai.
Taigi, galime nustatyti atskaitos tašką čia ir bandyti įkelti jį.
Neteisinga linija.
Čia.
[Pauzė]
Gerai. Taigi jis vėl sustojo.
Taigi dabar, kursai yra nesutikti su ilgis 20
ir mes galime pamatyti visi skirtingi modeliai, kad tai nerealu
iš duomenų bazės čia todėl aš turiu modelio objektą
kuri turi viduje priskiria turtą
ant Objektas yra visų dalykų kad jis rado duomenų bazėje.
Bet įvykiai, kurie buvo įregistruota
todėl jūs galite užsiregistruoti įvairūs renginiai,
Pavyzdžiui, kai modelis yra ištrintas
arba kai tai yra nerealu,
galite nustatyti skirtingas savybės ar keisti dalykus.
Yra įvairių kabliukų daug ir visa tai yra dokumentuojama
į Bookshelf.js dokumentacija, kuri leidžia jums
padaryti tarsi nieko kad jūs tikrai norite padaryti
su savo modeliais ir kolekcijos.
Galite - jie reiškė būtų tikrai pritaikoma
ir tikrai lengva jums juos pritaikyti
į jūsų poreikius taikymas.
Bet tiesiog ieško per čia,
Matau, kas skiriasi kursai.
Ir šiuo atveju aš faktiškai nebuvo paimti
su jokiais kitais, išskyrus duomenis tik patys kursai.
Tačiau panašiai kaip Iškalbingas ORM galite nustatyti
santykius, todėl kursas priklauso daug instruktorius.
Taigi, jei aš einu į priekį ir sustabdyti taikymą,
peršokti į tai atnešti skambutį, gali nurodyti skirtingus variantus
kad norite pereiti išilgai jo.
Ir vienas iš jų yra sugebėjimas pakrauti atitinkamą kodą
nurodant withRelated instruktoriai tada kursus.
Taigi, grįžkime ir šviežias tai čia ir sustabdyti dar kartą.
Taigi dabar, kursai prieštarauti, patį skaičių modelių,
bet dabar kiekvienas modelis turi ryšių maišos
kuris turi instruktoriai kad tai susiję su.
Taigi, šis kursas pavyzdžiui
kuri yra žinoma 082 turi du susiję instruktoriaus modeliai.
Ir jūs jau galite pamatyti, kaip daug lengviau tai sutvarkyti
vizualiai dirbti nei kai jūs susiduriame su stuff
kad jūs tarsi pakeisti kodą ir bandykite dar kartą PHP.
Tai, kad jūs galite tik sustabdyti vykdymą visiškai
ir įvertinti, kas yra čia ir - konsolės, -
nutolinti, kursai, jūs žinote,
kas, kad vietos apimtis kintamieji yra
o tai šiuo metu pasaulio objektas, nes, kaip matėte jį,
nebent jūs vadinate su konkrečios aplinkybės, ji nesiruošia
turėti kažką svarbią čia.
Ir tada, - leiskite man parodyti dar kelis pavyzdžius
įgyvendinti pažadus.
Taigi vietoj to, tai daryti withRelated instruktoriai Čia aš
ruošiuosi eiti į priekį ir perkelti jį paimti ir tada kursai,
Aš ruošiuosi grįžti courses.load instruktoriai.
Ir tada - tada skambinti tada.
[Pauzė]
Taigi šiuo metu, kursai turi būti pakrautas
su instruktorių, kuris asinchroninis veiksmų.
Bet kadangi mes jį grąžinti iš pažado, šalia vertė
dėl to yra kokia tai asinchroniniai skambučių grįžta
kuris šiuo atveju apkrova yra Bookshelf metodas
kad iš tikrųjų grįžta pati kolekcija.
Taigi, tai pakrovimo instruktoriai ten
ir tada jūs galite nurodyti - jei tai tik viena savybė,
galite tai nurodyti kaip eilutę, kitaip,
jūs galite padaryti instruktoriai ir reikalavimai
kaip metodą - gaila, kaip masyvą.
Ir tada, jei norite gauti tikrai išgalvotas ir suvaržyti bet
iš jų suteikta ima, jūs gali nurodyti ją kaip maišos
su instruktorių ir kas tada norite apriboti užklausą.
Taigi, norėčiau įkelti visus instruktorių kursuose kur -
taip QB už Query Builder kur būsena yra aktyvus.
Ir jūs galite gauti tikrai išgalvotas su bet
Susijusių užklausų norite sukurti.
Tačiau tik dabar, mes ketiname laikytis tik instruktoriai
ir mes grįžti tą vertę
taip, tada kitą, tada turėtų turi visi kursai pakrautas
tinkamai.
Ir jei ten buvo klaida bet tos grandinės etape,
būtų nušokti į laimikį.
Taigi eikime į priekį ir paleisti, kad.
Taigi kiekvieną kartą, - skirtingai nei PHP vienas trūkumas yra
"Nes mazgas" yra ilgai veikia procesas, jūs iš tikrųjų reikia
sustabdyti mazgas procesą kaip jūs atnaujinate savo kodą,
nes versija, kad tai veikia į vykdymo metu yra
iš versija kodas, kuris buvo pakrautas
kai prasidėjo ne ką jūs turite rūšiuoti
atnaujintų savo kodą su nuo tada.
Gerai. Mes nustatyti atskaitos tašką čia, čia ir atnaujinimo.
[Pauzė]
Oh, aš iš tikrųjų ne perkraukite šį puslapį arba
todėl buvo senas procesas.
Taigi jums atnaujinti abu tai ir mazgas inspektorius.
Taigi dabar mes matome kursus.
Jei mes tiesiog mėginį vieno iš šių modelių,
matome, kad santykiai objektas yra tuščias, bet dabar -
ir todėl, kad jums reikia nustatyti ribines vertes, gerai,
Minėjau, kad jūs galite peršokti į kamino pėdsakų
ir pamatyti, žinote, kur jis ketina app.
Taigi dabar galiu pamatyti, kas vyksta apkrovos metodo,
kurį aš apibrėžta dėl kolekcijų.
Jis tarsi "Nori apkrovos santykiai ant jau ".
Ir jūs galite dėti per ir pamatyti pagal kiekvieną eilutę
kur ši medžiaga yra vyksta kuris yra puikus.
Jei turite kažką tai suskaidytas į kodą,
tai mesti šiek tiek klaida ir jūs kaip ir aš tikrai noriu
pamatyti, kur tai vyksta.
Bet kuo greičiau paleisti į kažkas asinchroninis, -
jis eina į kitą Pažymėkite renginio kilpa
ir jūs prarasite savo - jūs prarasite savo vietą
į limfmazgius inspektorius.
Taigi, tau reikia pasakyti, "Gerai, kai aš prarasti tai,
reikia sustabdyti dabar į šią eilutę dar kartą. "
Nes jei aš nuolat pataikyti žemyn, žemyn į kaminą,
tai galiausiai būtų tik nedingo buvo man ne tai nustatyti
linija 22 mėlyna pertraukos liniją.
Taigi dabar, jei man atrodo kursuose čia,
ji turėtų apie ryšys instruktoriai
ir tada instruktoriai prideda jas.
Taigi, galite matyti, kad grįžau pažadas nuo pirmos pažadą
ir tada jūs galite nuolat padaryti, kad žemyn linija.
Taigi skiriasi pažadas, žada bibliotekas,
Aš vienas vadinamas Bluebird kuri yra tikrai naudinga.
Ji priduria, gražus, tai daug keisti asinchroninis -
keičiasi paskambinti bazė kodą į stuff
kad gerai dirba su pažadais.
Bet - atsiprašau [nesigirdi] kas Aš buvau ketinate pasakyti, kad tai yra.
Leiskite pažvelgti nors ne -
todėl galime pasakyti, kad ten buvo problema, kai surenkate kažką.
Taigi turiu šį kitą maršrutą rasti vadinama kurso ID.
Taigi darykime kursą 2.
Ar galiu gauti - JSON kursą.
Ir tai daro [nesigirdi].
[Pauzė]
Užuodžiu kažką negerai čia.
Ne 3000, buvau "Chrome inspektorius skirtuką.
Gerai. Taigi eikime į Žinoma - JSON kursas 1.
Ir tai grįžta tik JSON formatas, pakrautas kursas
su kai instruktoriai.
Bet pavyzdys Aš norėjau duoti čia yra tai, kad,
Darau JSON kurso ID.
Ir paims parametrų, Aš nurodant reikalauja tiesa,
tai galimybė, kad tai dokumentais Bookshelf
kai jis sako, kad "Jeigu Aš pabandyti ir rasti šį kursą
ir tai ne ten, tada mesti klaida. "
Ir tai turėtų būti taikoma sugavimo blokuoti čia.
Taigi eikime į priekį ir pereiti atgal į limfmazgius inspektorius ir pabandyti
ir pertrauka tai ir pamatyti, ką mes turime.
Taigi, galime nustatyti pertrauką čia JSON žinoma.
Gerai.
Aš eisiu į JSON žinoma ir Aš tiesiog įdėti kai -
[Pauzė]
Jis gali būti šiek tiek sudėtinga kartais, kai bandote
valdyti, kuris iš buvo atnaujinamas
ir kurios nėra - pažiūrėkime.
Taigi skambina klaidą tuščias atsakymą.
[Pauzė]
Leiskite mesti Debugger čia.
Kadangi, kaip mazgas iš tikrųjų optimizuoja
už JavaScript runtime kad taip greitai serveryje,
kartais mazgas Debugger turi keletą klaidų, kai bandote
ir nustatyti ribines vertes dinamiškai ir jūs iš tikrųjų reikia
naudoti Debugger ir ne linijos iki linijos.
Taigi pažiūrėkime, jei tai pasireiškia mums, ko norime.
Taigi, aš nustatyti, app.get JSON Žinoma id,
ir aš nustatyti savo Debugger yra
sugavimo ataskaita apačioje.
Paduok reikalauja tiesa, tai turėtų - viskas gerai, ten mes einame, sumušė.
Taigi, dabar matau kad ji nustojo
šis galutinis sugavimo blokas nes withRelated -
arba dėl to reikalauja tiesa nurodyta ir nėra žinoma,
su ID šios didelės skaičius per išskyrus
kuris dabar yra Emessage.
Ir kiekvienas JavaScript klaida turi kamino turtą
, kad ateina kartu su juo.
Taigi, tai dažnai būna naudinga Norėdami pavyzdžiui,
konsolės atsijungti e.stack.
Ir aš iš tikrųjų galite pamatyti kai aš paspauskite klaidą.
Taigi gaunu klaidą tuščias atsakas, tai pranešimą
, kuris buvo siunčiamas per Bookshelf.
Bet dabar, aš galiu pažvelgti ne, ne pokalbio kaminą ir pamatyti
kad Bookshelf tarmės SQL modelis 83,
tai tuščias atsakas buvo įmestas klaida.
Ir tai, kai aš minėta, tai taškas anonimiškai
nes tai anoniminis funkcija.
Jei tai buvo vardas funkcija jūs turite geresnių idėjų
, į kurį veikia iš tikrųjų per nereikia eiti
į model.js kodą.
Nors tai reiškė, kad gana, gana aiškūs,
taigi matau, kad internete.
Ką jie pasakys man buvo linija 83.
Taigi, jei options.require ir atsakymas nebuvo,
dabar meta naujas tuščias atsakas klaida.
Taigi galite pamatyti gana paprasta, kaip tai veikia.
Ir viduje leidinius,
ten jau vien bendra krūva naudojimo pažadus.
Taigi, jūs galite nurodyti Promise.method
su Bluebird bibliotekoje kuri palaiko tinkamą kontekstą
tai, o grįžta pažadas.
Ir taip aš - aš privalomi tai panaši vertė
ką aš paminėti anksčiau, tačiau naudojant pažadus
ir tada aš galiu - yra naujas.
Jis gali būti asinchroninis ar ne, jei aš noriu.
Ir tada aš kai kitų dalykų, kurie gali
arba negali būti asinchroninis ir tada rūšių šuoliai žemyn tai.
Taigi Promise.all yra pagalbininkas, kad populiarių bibliotekų daug turi
kur jūs galite turėti masyvas potencialiai gali
arba gali būti ne pažadai.
Ir kai visi tie, kurie baigtas, jūs grįšite, kad
ir tada ji šokinėja į kitą eilutę
ir jūs galite pamatyti, kaip iš tikrųjų lygina iš piramidės
kad jums, atgalinių pragaras, nes jos žinomos
jei jūs darote viską su šios funkcijos eilutė po eilutės.
Yra būdų, kaip gauti aplink kad bet pažadai yra viena
iš geriausių būdų, mano nuomone,
tikrai, kad jūsų kodą švarus ir lengva skaityti.
Taigi, tai tik trumpas Įvadas į "JavaScript"
ir lentynoje ir Knex apskritai.
Ir, jei yra kokių nors klausimų, Žinau, kad medžiagos tona
rūšiuoti pabandyti ir dangtelis juolab kalbomis,
skirtingai nuo daugelio, kad esate susipažinę su, kad aš tik norėjau
padaryti taip, kad bent , jei turite problemų,
su savo kodą, turite gali tarsi šuolis -
kad tai, ką aš norėčiau padaryti, tai tarsi šuolis į bibliotekas
kad aš naudoju ir pamatyti kaip viskas yra struktūrizuoti.
Yra vienas, kad aš paminėti anksčiau vadinamas Backbone.js
ir iš tikrųjų tai [Nesigirdi] kliento pusėje
padėti suteikti modelio vaizdą valdiklis struktūra
Jūsų kodas.
Bet ji iš tikrųjų turi anotacijoje dokumentus šaltinis
kuris leidžia jums rūšiuoti pamatyti.
Tai tikrai gerai dokumentais, kas vyksta,
kaip tai plėsti Ajax funkcija
arba renginys funkcijas ar modeliai ir kolekcijos rūšiuoti
paaiškinti, kas vyksta procesas.
Ir jeigu jūs suprantate, "JavaScript pagrindai
kaip prototypal paveldėjimo ir tik kaip funkcijos naudojamos
kaip abiejų objektų ir vertybių ir klases ir viskas.
Ji tampa daug lengviau suprasti, kas vyksta
dėl potencialiai bibliotekos, kad jūs naudojate
ir Debugger kodas ir gebėti ne būti beldžiasi galvą
nuo sienos, nes jūs nesuprantate, kaip
skirtingų vienetų dirbate, taigi.