>> Se konsa, avèk ki yo te di,
jis sòt de yon senp entwodiksyon nan prototip
ak modèl la objè JavaScript.
Nou pa pwal chanjman angrenaj yon ti kras pale
sou plis JavaScript sou la sèvè ak bibliyotèk la etajèr
ak koneksyon nan Knex Bibliyotèk.
Se konsa, ou kapab aktyèlman jis -
si ou fè rechèch pou Bookshelf.js li ta dwe trè fasil
jwenn, yo ta dwe premye rezilta, ak etajèr
tankou David mansyone jis bay yon anpil nan estrikti
alantou JavaScript objè ak travay avèk yo relasyon ou
nan baz done relasyon.
Se konsa, yon anpil nan karakteristik ki sanble ki moun ki la aktyèlman lou enspire
pa ORM Laravel a kòm byen ke Backbone.js a,
ki se yon fen devan mv bibliyotèk ki pèmèt ou
nan estrikti Kòd ou, menm jan ak sa m 'te montre
ak egzanp yo nan la prototip kote ou kapab -
olye pou yo jis abitrèman voye klas
sou opinyon ou isit la epi gen.
Li ba ou modèl ak koleksyon nan moun ki modèl
ki yo sipoze aji kòm sòt de yon pwen sèl nan verite
sou done yo pou aplikasyon w lan.
Lè sa a, ou koute, tankou moun yo modèl chanjman, nou di: OK,
re-rann modèl sa a isit la ak yon sèl sa a sou isit la
epi li pa jis ajoute klas isit la, ajoute klas la ak sòt de chwazi
sou seleksyon, epi fè nan spiderweb nan jQuery kòd.
Li bay plis nan yon ki baze sou klas estrikti an miyèt moso endividyèl,
men yon eleman enpòtan nan ki bibliyotèk se modèl yo
ki gen yon estrikti ki sanble nan sa ki modèl etajèr fè.
Se konsa, si w ap abitye ak nan Etajè liv w ap trè tou
trè abitye ak Backbone.js modèl,
ak mwen ta rekòmande pou pran yon gade nan sa a.
Se konsa, kèk nan karakteristik yo pi gwo
ke li ba ou yo se jis la kapasite yo mete done sou yon objè
yo rele chache, ki retounen yon dosye endividyèl
soti nan baz done a, kreye relasyon kòm menm jan an
a sa ou te fè fas nan lespas nan Laravel
kote ou ka di yon pasyan mete yon metòd dosye
epi di sa a te genyen dosye
kote dosye objè a se dosye sante Non tab.
Ann wè.
Gen anpil - li ki dwe nan -
jis bagay ke w ap trè menm jan an -
trè abitye ak deja, men nan JavaScript.
Apre sa, anba kapo a, pou etajèr,
li itilize yon mason sijè rechèch rele Knex.js.
Se konsa, sa a, se Knex, knexjs.org.
Li se yon referans nan jwèt la si nenpòt moun ki an tout tan tout tan te jwe ak sa a.
Men, li pèmèt ou - nan yon mòd menm jan an, nan jQuery,
ou jis sòt de kreye yon chèn nan diferan metòd
ke w ap rele sou ou ranje baz done pou ou kapab -
ou te kòmanse soti lè li di Knex ak non tab.
Se konsa, pou egzanp, Knex itilizatè yo, chwazi ki kolòn ou ta renmen,
ki kote, epi yo gen diferan kote kondisyonal ak ou ka gen
Ak ki kote, oswa kote, kote ant, kote se pa sa,
ou koulye a, desann liy lan.
Ou ka presize diferan kontre ak ant tab baz done ou
ki etajèr sèvi ak intern yo mete kanpe sòt de majik
alantou hasOne a, hasMany, belongsTo, belongsToMany.
Se konsa, konbinezon an
nan de moun kite ou fè bèl anpil sa ou ta dwe itilize
yo bay nan kad tankou Laravel an tèm
nan fonksyonalite ap travay ak baz done.
Se konsa, kite a ale pi devan epi pran yon gade nan yon egzanp ki senp
pou yon app Express ki fè pou sèvi ak modèl sa yo
ak koleksyon nan Etajè liv djaz [fonetik elemantè].
Se konsa, mwen te mete kanpe jis yon senp aplikasyon isit la.
Mwen wete soti kèk nan bagay la ki te inisyalizin eksprime
yo epi li deplase ki nan yon ini anyè nan Tanp kote mwen te kreye.
Youn nan bagay ki bèl sou ap travay ak Express kòm sipoze
Laravel se ke gen nan reyèlman pa anpil fè respekte restriksyon
sou ou conventionalized.
Se konsa, ou kapab kreye repèrtwar -
li pa vrèman ba ou yon anpil tout nan travay koupe nan.
Ou te gen jis sòt nan kèk anviwònman debaz ak Lè sa a, -
men li pa pran swen kote ou mete yo.
Ou pa oblije gen anyè kontwolè a.
Ou pa bezwen gen yon modèl anyè, yon anyè config.
Ou ka sòt de kreye sa yo kòm bezwen pwojè w la
, li mete bagay yo wout la ki fè sans ki pi ba ou.
Se konsa, olye pou yo gen tout boilerplate eksprime sa a
nan app.js prensipal yo mwen jis di egal app mande pou ini / eksprès.
Se konsa, nan ini an,
katab la inisyalizin Mwen te jis gen Eksprime isit la,
ak sa a egzije pou Express, apèl fonksyon an konfigirasyon, rele nan -
kouche moute motè a vi, JSON analizeur, tout sa ki.
Se konsa, koulye a, se pou yo kontinye desann.
Se konsa, mwen mande a reyinyon enstriktè kou
ak kondisyon modèl.
Se konsa, sa yo, se nan yon katab ki Mwen jis deside modèl Non.
Li pa dwe fè ki fason sepandan li fè sans,
men modèl se jis bèl komen Se konsa, mwen ta rekòmande pou li.
Men, - Se konsa, kite yo ale pou kou a.
Mwen panse ke mwen lè l sèvi avèk - wi, ak egzanp yo
desann isit la, yo tout ki baze alantou modèl la kou.
Se konsa, kite a jis pran yon gade nan sa.
Se konsa, kounye a, jis nan la premye liy nan modèl sa a,
Mwen deja ki mande yon lòt bagay.
Se konsa, si ou ap remake nan ne ou ta dwe mande
oswa w ap ale nan fini ki mande yon pakèt tout
dosye nan diferan ki lokalize
nan diferan kote nan aplikasyon w lan.
Apre sa, chemen yo relatif tout kote ou yo
nan aplikasyon ou ye kounye a,
sòf si li se yon nivo tèt deja defini kòm nan ou enstale li
ak MPM tankou etajèr oswa Knex oswa Express oubyen yon bagay,
sa yo pa manm fanmi.
Wi? Rale nan pi plis?
OK. OK. Se konsa, w ap ale nan fini ki mande yon pakèt tout
dosye nan jis diferan nan ou Kòd, ki se bon ak move.
Nan yon bon fason ou konnen ki kote bagay sa yo yo epi li pa sòt
nan majik tankou sa ki nan ale sou anba kapo a,
ki ka vrèman koze konfizyon
lè ou gen yon trè lou Java -
oswa fondasyon trè lou tankou Laravel, ki sòt de di,
nou pral pran swen nan sa a pou ou pa gen
bezwen tout bagay men ou gen
konnen ki jan tout bagay travay yo nan lòd yo sèvi ak li.
Ki kote tankou nan ka sa a, li nan trè senp tankou
kote tout bagay se, yo ap jis fini
yo te yon ti kras plis sezisman.
Menm jan nan bò a Mwen renmen yo sèvi ak, gen nan yon Plugin
si ou itilize yon tèks avèg
kote ou ka enstalasyon ne la modil k'ap vin ede ak ou ka kòmanse
tape tankou Enstriktè ak li kreye chemen an fanmi
kote ou ye ak sa yo ki dosye kòd, kalite itil.
Se konsa, modèl la kou se ki egzije baz isit la
ak Lè sa a, baz entèn mande pou ini / etajè liv
ak Lè sa a, etajèr a, li mande pou etajèr nan tèt nivo
ak Lè sa a, inisyalizasyon l 'ak initialisé Knex egzanp lan,
ki etabli non an kliyan
ak koneksyon a anviwònman pou baz done a.
Se konsa, mwen jis lè l sèvi avèk yon senp egzanp nan Sekans Pro ki -
nan miskl, mwen gen aksè li ak Fen Pro epi li gen jis sòt
nan yon baz done ki sanble konfigirasyon kòm nou te gen
nan aplikasyon ki nan egzanp lan premye ak katalòg la kou.
Se konsa, mwen mete koneksyon mwen anviwònman isit la,
ak sa yo, yo tout dokimante nan paj pwojè a Knex.js
sou fason pou du sa yo koneksyon.
Se konsa, mwen kounye a gen modèl baz mwen.
Apre sa, kòm mwen mansyone ak chanjman nan pwototip,
Se konsa, ki ka aktyèlman gen kalite yon anpil nan -
ajoute yon anpil nan boilerplate Kòd ou pou konvansyon
ki te adapte pa Backbone.js
e kounye a, Bookshelf.js se ajoute sa a pwolonje metòd
kòm yon pwopriyete estatik sou objè JavaScript ou a,
ki bay li yon sòt de prèske klas ki baze sou pòsyon tè nati
kote si ou rele pwolonje ou ka mete kanpe nenpòt ki
nan metòd yo pwototip ke ou ta renmen isit la
ak Lè sa a, ou kapab - nenpòt metòd siplemantè estatik
ke ou ta ka vle, ou ka jis mete yo tèt nou
soti isit la pou m ka pwolonje li ak - Se konsa, si pou egzanp,
modèl miltip ki nesesè montre Non epi pou yo jwenn non sa a.
Se konsa, isit la, m ap di a Non ekspozisyon pou modèl
pa default se tou sa non li pwopriyete se otreman retounen
okenn non.
Epi, koulye a sou chak modèl ki se yon -
ki devlope modèl baz sa a, mwen kounye a gen yon metòd Non ekspozisyon
sou pwototip a chèn yon kote.
Men, si mwen vle recouvrir li Mwen ka jis mete l '- mete sa -
getname ta dwe isit la.
Apre sa, li pèmèt ou imite pòsyon tè klasik
nan JavaScript, ki kapab bèl patikilye pou bagay sa yo
ke yo prete tèt yo ke yo te klas ki baze tankou modèl objè.
Se konsa, kite a so tounen nan Kòd aplikasyon an.
Se konsa, mwen te gen yon wout pou jis koupe, jis pou endèks m '
ak Lè sa a, koupe kou yo.
Apre sa, tou de nan sa yo ap rele renderCourses metòd la.
Se konsa, ankò, fonksyon yo premye klas epi yo ka pase
kòm agiman nan metòd.
Se konsa, nan app.get sa a, M ap rele -
Mwen pase renderCourses kòm agiman an.
, Rann - oswa fonksyon kapab konfigirasyon tankou var -
jan mwen te fè pi bonè var renderCourses egal fonksyon
oswa yo ka jis renderCourses fonksyon.
Li pa fè twò anpil nan yon diferans.
Ou ka gen aktyèlman sa ki yo rele yo fonksyon Non
ekspresyon yo, ki se renderCourses var egal
renderCourses fonksyon.
Epi, rezon ki fè yo vle gen non fonksyon patikilyèman
nan ne se ke li ba ou yon cleaner -
plis lizib chemine tras.
Se konsa, si ou gen yon pakèt tout
nan fonksyon anonim li pral di -
lè ou gen yon erè nan you'll Kòd ou -
ou pa pral konnen ki fonksyon li nan rele ou ta gen gade
nan nimewo Kòd ak nimewo a liy
epi li pafwa pi fasil jis yo wè analizan
lè ou gen aktyèlman non
pou fonksyon yo tèt yo sou bò sèvè.
Se konsa, renderCourses sa a, kite a rele apps ne -
se konsa mwen tande sou Nwayo 3000 [fonetik elemantè].
Se konsa, tout bagay sa a ap fè dwa isit la se jis ap resevwa tout nan
kou ki soti nan baz done a.
Mwen pa menm limite li se konsa li ap fè yon nimewo gwo
nan ranje li nan retounen.
Apre sa, yo nan lòd yo fè sa,
sou modèl la kou gen se yon pwopriyete estatik
rele koleksyon.
Se konsa, mwen jis rele l '- Mwen di kreye yon koleksyon nouvo
pou kou sa a, ak Lè sa a al pran l ',
ak Lè sa a, retounen kou yo koleksyon isit la nan Bondye te pwomèt la.
Se konsa, intern, David nan - a mwatye dènye anseye yon ti kras
sou pwomès ak pwomès yo itilize trè lou nan tou de Knex
ak etajèr paske li confer la -
li ba ou a kapasite yo gen yon pakèt
nan diferan apèl asenkron ak sòt de rantre nan Lè sa a, ansanm
oswa chache yon bagay, ak Lè sa a,
ak ki rele yon lòt asenkron rele baz done
epi retounen ke valè ak Lè sa a, Ale nan pwochen an Lè sa a,
ak pwochen Lè sa a, ak Lè sa a, gen yon trape nan fen an trè sòt
nan imite asenkron eseye trape konpòtman ak asenkron kòd,
paske w ap wè li kounye a
men li la menm pi rèd yon fwa ou kòmanse fè fas ak li.
Asenkron Kòd se jis toupatou
nan bò sèvè JavaScript ak reyèlman nan yon pi plis degre
pase w ap itilize yo si ou te fè JavaScript
sou bò a kliyan yo.
Se konsa, ki reyèlman, reyèlman ede ou deyò.
Men, jis montre w deklarasyon an debugjeur
ke mwen te pale de nan zouti yo enspektè ne,
Mwen pral ale pi devan epi voye jete yon liy debugjeur isit la
nan fonksyon an renderCourses epi wè ki kote ki mennen m '
lè m '- se konsa ne ka enspektè yo fèt pou enstale
pa fè NPM Enstale ak yon drapo G,
ki vle di Global Ne Enspektè.
Apre sa, li pral chache l 'pou NMP ak enstale li globalman
pou aplikasyon pou ou Se konsa, ou ka jis rele li
soti nan liy la lòd.
Mwen te deja enstale li se konsa mwen pral ale pi devan epi -
aktyèlman li ka gen yo rete tann li pral jis pran,
pran de segonn.
Ak sa ki ne enspektè ankò pèmèt ou
dwe fè se gen decapite sa a vèsyon an konsole a debugjeur
ke w ap itilize yo lè w ap travay sou bò a kliyan epi yo dwe kapab
yo sispann, jis ajoute espesifye pwen nan Kòd ou.
One Stop ekzekisyon e pran yon gade nan sa k ap pase sou li a,
ki ta gen reyèlman vini an sou la men si karakteristik la
tankou sa te disponib
lè debogaj ou Kòd PHP mwen se asire w.
Se konsa, kite a jis pran yon gade nan sa.
Se konsa, mwen ka jis rele ne enspektè
epi li pral di vizite URL sa a pò 5858 yo kòmanse debogaj,
sa se sèlman default la pou li montre kouman li kòmanse leve.
Se konsa, mwen te gen koulye a te resevwa - gen nan pa gen anyen ale sou isit la
paske mwen bezwen kòmanse.
Se konsa, ne enpas [fonetik elemantè] a drapo debug ak Lè sa a, app.js.
Se konsa, li di debugjeur koute sou pò 5858,
Express sèvè tande sou 3000.
Se konsa, nou ap bon yo ale.
Kite m 'jis rafrechi sa a.
Epi, koulye a mwen ka wè app.js yo kòd ki Mwen te jis gade nan
Men, isit la nan konsole a.
Se konsa, koulye a, si mwen eseye kouri sa a, ou ka wè li, li sispann.
Li nan jis ap tann paske li yo tout ekzekisyon Kòd se kounye a
kanpe sou debugjeur sa a liy ki mwen te mete an la.
Apre sa, mwen kapab kounye a sèvè -
[Fèbl rmark]
Oh, wi. Ki sa ki se mo kle a chemen kout rale ekran?
Oh gen.
Te resevwa li. OK.
[Pòz]
Oh, li pa nan kap [Fonetik elemantè] sa a.
Se konsa, kou se reyèlman gwo
paske mwen pa ap fè yon limite kloz oswa nenpòt bagay,
li jis atiran nan tout baz done nan kou
ki se yon anpil nan yo.
Se konsa, - ki se objè
ki aktyèlman ta ka aksidan nòt enspektè egzanp lan.
It's - OK.
Kite m 'fè yon limit ak Lè sa a, nou ka pran yon gade
lè li pa nan atiran dè santèn de kou yo.
Se konsa, touye sèvè a ak enspektè
epi mwen pral fè kou rechèch koleksyon limit 20.
Se konsa, nan etajèr, kontrèman ak nan Laravel
kote ou ka jis rele limite dirèkteman oswa rele nenpòt ki
nan metòd SQL sa yo ke ou itilize
dirèkteman sou egzanp lan ORM.
Nenpòt lè ke w ap lè l sèvi avèk jis Metòd SQL ki se bay
nan Knex, ou gen rele demann lan sòt
nan tiyo nan chèn lan rechèch.
Lè sa a kapab envoke ak swa yon fonksyon,
Se konsa, ou ka di, fonksyon limit sa a 10 oswa ou rele l '
pa ki espesifye ki metòd ou ta renmen yo rele
sou egzanp lan Knex ak Lè sa a, ki valè.
Se konsa, nou ap ale nan fè limite 20 ak Lè sa a, mete.
Nou aktyèlman pa fè sa bezwen debugjeur isit la
paske sa nou kapab jis mete breakpoints
ak ki fè li vin pi fasil.
Tout dwa.
Se konsa, kite a mete yon breakpoint dwa isit la epi eseye chaje li.
Sa ki mal liy.
Dwa isit la.
[Pòz]
OK. Se konsa, li te sispann ankò.
Se konsa, koulye a, kou se yon objeksyon ak longè de 20
epi nou ka wè tout diferan la modèl ke li nan chache
soti nan baz done a dwa isit la Se konsa, mwen te gen yon objè ki modèl
ki te gen, andedan kay la atribi figi pwopriyete
sou objè a se tout bagay sa yo ke li nan yo te jwenn nan baz done a.
Tout evènman ki gen te anrejistre
Se konsa, ou kapab enskri evènman diferan,
pou egzanp lè a se modèl ke yo te efase
oswa lè li nan ke yo te chache,
ou ka mete diferan pwopriyete oswa pou modifye bagay sa yo.
Genyen yon anpil nan Kwòk diferan ak sa yo, yo tout dokimante
nan Bookshelf.js yo dokiman ki pèmèt ou
fè sòt de anyen ke ou reyèlman vle fè
ak modèl ou ak koleksyon yo.
Ou ka - yo ap vle di yo dwe reyèlman customizable
ak reyèlman fasil pou ou yo adapte yo
a bezwen yo nan ou aplikasyon an.
Men, jis kap nan isit la,
Mwen ka wè sa ki diferan an kou ki disponib.
Apre sa, nan ka sa a, mwen aktyèlman pa t 'chache
ak nenpòt lòt done lòt pase jis kou yo tèt yo.
Men, nan mòd menm jan ak pale fasil ORM a ou ka mete
moute relasyon yo, se konsa kou a ki dwe nan anpil enstriktè.
Se konsa, si mwen ale pi devan epi sispann aplikasyon an,
Ale nan sa a chache rele, ou ka presize opsyon diferan
ke ou ta renmen pase ansanm ak li.
Apre sa, youn nan yo se nan kapasite yo chaje Kòd ki gen rapò
pa ki espesifye withRelated pwofesè Lè sa a, kou yo.
Se konsa, kite a tounen ladan l epi fre sa a isit la epi yo sispann ankò.
Se konsa, koulye a, kou yo objeksyon, menm kantite modèl,
Men, koulye a chak modèl gen yon hash relasyon
ki te gen enstriktè yo ke li nan ki gen rapò ak.
Se konsa, kou sa a pou egzanp
ki se kou 082 te gen de ki gen rapò modèl enstriktè.
Epi ou ka deja wè ki jan pi fasil sa a se sòt
nan vizyèlman travay avèk pase lè w ap fè fas ak bagay
ke ou sòt de chanje kòd la ak Lè sa a, eseye li ankò nan PHP.
Lefèt ke ou kapab jis sispann ekzekisyon antyèman
ak evalye sa ki nan isit la ak nan konsole a, - - la a
rale soti, kou se, ou konnen,
ki sa sa sijè ki abòde lan lokal varyab yo disponib
ak sa a se kounye a mondyal la objè paske menm jan ou wè sa,
sof si ou rele ak yon kontèks espesifik, li pa k ap pase
gen yon bagay ki enpòtan isit la.
Lè sa a,, - kite la m ' montre yon tijan plis egzanp
mete ann aplikasyon pwomès.
Se konsa, olye pou yo fè sa withRelated pwofesè isit la mwen se
ale nan ale pi devan yo epi li deplase sa a a al pran ak Lè sa a, kou yo,
Mwen pral retounen pwofesè courses.load.
Lè sa a, - Lè sa a, ou rele lè sa a.
[Pòz]
Se konsa, Lè sa a, nan pwen sa a, nan kou yo ta dwe chaje
ak pwofesè yo, ki se aksyon asenkron.
Men, paske se nou ap retounen li soti nan yon pwomès, valè nan pwochen
pou Lè sa a, se sa sa a retounen apèl asenkron
ki nan sa a chaj ka se yon metòd nan etajèr
ki aktyèlman retounen koleksyon nan tèt li.
Se konsa, li chaje a pwofesè sou gen
ak Lè sa a, ou ka presize - si li nan jis yon sèl pwopriyete,
ou ka presize sa a kòm fisèl, otreman,
ou ka fè pwofesè ak kondisyon
kòm yon metòd - regrèt sa, kòm yon etalaj.
Lè sa a, si ou ta renmen jwenn vrèman anpenpan ak oblije nenpòt ki
nan sa yo bay èkstre, ou ka presize li kòm yon hash
ak pwofesè ak Lè sa a, sa ki ou ta renmen limite rechèch la sou.
Se konsa, mwen ta renmen chaje tout pwofesè sou kou kote -
Se konsa, kb pou rechèch mason kote sitiyasyon an se aktif.
Apre sa, ou kapab jwenn vrèman anpenpan ak nenpòt ki
nan demann ki gen rapò ou ta renmen bati.
Men,, jis pou kounye a, nou pral nan bwa a jis pwofesè
e nou retounen ke valè
Se konsa, Lè sa a, pwochen an Lè sa a, yo ta dwe gen tout kou yo chaje
moute byen.
Men, si te gen yon erè nan nenpòt ki etap nan ki chèn,
li ta so desann nan trape la.
Se konsa, kite a ale pi devan epi kouri sa a.
Se konsa, chak fwa - kontrèman ak nan PHP, yon sèl inconvénient se la
"Paske ne" se yon kouri long pwosesis, ou aktyèlman bezwen
yo sispann pwosesis la ne jan ou mete kòd ou a,
paske vèsyon an ke li nan kouri nan tan an kouri se,
vèsyon an nan la kòd ki te chaje
lè te kòmanse pa sa ou genyen sòt
nan mete ajou Kòd ou ak depi lè sa a.
OK. Nou pral mete yon breakpoint isit la, isit la epi rafrechi.
[Pòz]
Oh, mwen aktyèlman pa t ' rafrechi paj sa a swa
Se konsa, li te sou pwosesis la fin vye granmoun.
Se konsa, ou rafrechi tou de sa a ak enspektè a ne.
Se konsa, kounye a nou wè kou yo.
Si nou jis pran echantiyon nan youn nan modèl sa yo,
nou ka wè ke relasyon yo objè a vid, men kounye a -
ak rezon ki fè yo ke ou bezwen yo mete breakpoints se, byen,
Mwen mansyone ke ou kapab Ale nan tras nan chemine
ak wè ou konnen, kote li pral nan app a.
Se konsa, koulye a, mwen ka wè sa ki nan pase nan metòd la chaj,
ki mwen te defini sou koleksyon yo.
Li sòt de "chay Eager relasyon sou yon deja ".
Epi ou ka etap nan ak wè liy pa liy
kote bagay sa a se ale ki se gwo.
Si ou gen yon bagay ki nan kase nan kòd ou a,
li nan voye kèk erè ak w ap tankou, mwen reyèlman vle
yo wè ki kote sa a ki pral.
Men, le pli vit ke ou kouri antre nan yon bagay asenkron, - a
li ale nan pwochen an tik nan bouk la evènman
epi ou pral pèdi ou - ou pèdi plas ou
nan enspektè a ne.
Se konsa, ou bezwen di, "OK, yon fwa mwen pèdi sa a,
li bezwen yo sispann kounye a nan liy sa a ankò. "
'Kòz si mwen te kenbe frape desann, desann chemine a,
li ta gen evantyèlman jis ale lwen te Mwen pa mete sa a
liy 22 liy repo ble.
Se konsa, koulye a, si mwen gade nan kou isit la,
li ta dwe sou relasyon pwofesè
ak Lè sa a, gen nan pwofesè tache yo.
Se konsa, ou ka wè ke mwen tounen yon pwomès depi premye Bondye te pwomèt la
ak Lè sa a, ou kapab toujou fè sa desann liy lan.
Se konsa, Bondye te pwomèt la diferan, pwomèt bibliyotèk,
Mwen itilize yon sèl rele Bluebird ki se reyèlman itil.
Li ajoute yon anpil nan bèl nan sa a pou chanje asenkron -
chanje rele tounen Kòd baz nan bagay
ki travay byen ak pwomès.
Men, - regrèt [fèbl] sa Mwen te ale nan di ke li la.
Se pou nou pran yon gade menm si nan - a
Se konsa, kite a di ke te gen yon pwoblèm lè atiran yon bagay.
Se konsa, mwen gen lòt wout sa a jwenn rele ID kou.
Se konsa, kite a fè kou 2.
Èske mwen kapab jwenn - JSON kou.
Lè sa a fè [fèbl].
[Pòz]
Mwen ka pran okenn sant yon bagay mal isit la.
Se pa sou 3000, mwen te sou Chrome enspektè tab la.
OK. Se konsa, kite a ale nan kou - JSON kou 1.
Lè sa a retounen jis nan JSON fòma, kou a chaje
moute ak kèk pwofesè.
Men, egzanp lan mwen te vle bay isit la se ke,
M'ap fè JSON ID kou.
Ak nan paramèt yo chache, Mwen ki espesifye mande pou vre,
ki se yon opsyon sa a, se dokimante nan etajèr
kote li di ke, "Si, Mwen eseye epi jwenn kou sa a
epi li pa la, Lè sa a, voye jete yon erè. "
Apre sa, ki ta dwe kenbe pa trape an bloke desann isit la.
Se konsa, kite a ale pi devan epi so tounen nan enspektè a ne epi eseye
epi kase sa a, epi wè sa ki nou te resevwa.
Se konsa, kite a mete yon ti repo isit la sou kou a JSON.
Tout dwa.
Mwen pral ale nan JSON kou ak Mwen ta jis mete nan kèk -
[Pòz]
Li kapab yon ti kras difisil pafwa lè w ap eseye
nan jere ki youn ki te ti repo
epi ki pa gen - kite la wè.
Se konsa, li rele erè vid repons.
[Pòz]
Se pou nou jete yon debugjeur nan isit la.
Paske nan ki jan ne aktyèlman Optimization
pou ègzekutabl la JavaScript yo dwe tèlman vit sou sèvè a,
pafwa debugjeur a ne gen kèk erè lè w ap eseye
, li mete breakpoints dynamique epi ou aktyèlman fè bezwen
sèvi ak yon debugjeur ak pa liy-pa-liy. la
Se konsa, kite a wè si sa a vin nou sa nou vle.
Se konsa, mwen mete, app.get id kou json,
epi mwen te mete debugjeur mwen gen
nan deklarasyon an trape nan pati anba a.
Chache mande pou vre, li ta dwe - tout dwa, gen nou ale, te kraze yo.
Se konsa, koulye a, mwen ka wè ke li te sispann
nan nivo sa a blòk trape final paske withRelated la -
oswa paske mande pou tout bon an espesifye epi pa gen okenn kou
ki gen ID nan sa a gwo nimewo nan yon eksepsyon
ki se kounye a Emessage.
Epitou, chak erè nan JavaScript gen yon pwopriyete chemine
ki vini ansanm ak li.
Se konsa, li souvan itil pou egzanp,
konsole ale soti e.stack.
Apre sa, mwen ka aktyèlman wè lè m 'frape yon erè.
Se konsa, mwen jwenn erè vid repons, sa a, se mesaj la
ki te voye via etajèr.
Men, koulye a, mwen ka pran yon gade nan, nan rele pil la ak wè
ke nan etajèr dyalèk SQL modèl 83,
repons vid sa a te voye jete erè.
Lè sa a se kote mwen mansyone, li nan dot anonim
paske li nan yon anonim fonksyon.
Si yo ki te yon fonksyon Non ou ta gen pi bon lide
yo ki fonksyone aktyèlman nan san yo pa gen ale
nan kòd la model.js.
Malgre ke li la vle di yo dwe san patipri, san patipri lizib,
Se konsa, mwen ka wè ke sou entènèt.
Kisa yo di m 'te liy 83.
Se konsa, si options.require ak repons la pa t 'egziste,
li kounye a lanse yon nouvo erè repons vid.
Se konsa, ou ka wè bèl dwat ki jan sa ap travay.
Apre sa, intern nan etajèr,
ap gen jis yon antye pakèt moun sou sèvi ak pwomès.
Se konsa, ou ka presize Promise.method
ak bibliyotèk la Bluebird ki kenbe kontèks ki kòrèk la
nan pandan y ap sa a retounen yon pwomès.
Se konsa, mwen te - Mwen obligatwa valè a nan sa a menm jan an
nan sa ki mwen ta mansyone pi bonè, men lè l sèvi avèk pwomès
ak Lè sa a, mwen ka - se nouvo.
Li kapab asenkron oswa ou pa si mwen vle.
Lè sa a, mwen fè kèk lòt bagay ki ka
oswa pa pouvwa ap asenkron ak Lè sa a, kalite so desann sa a.
Se konsa, Promise.all se yon lòt moun sanble ke yon anpil nan bibliyotèk popilè gen
kote ou ka gen yon etalaj de potansyèlman kapab
oswa pa pouvwa ap pwomès.
Ak yon lòt fwa tout moun sa yo se fini, ou retounen ke
ak Lè sa a, li sote nan liy ki vin apre a
epi ou ka wè ki jan li vrèman aplati soti piramid lan
ke ou jwenn, nan kalbak lanfè kòm li te ye li yo
si w ap fè tout sa ak kalbak liy pa liy.
Gen fason jwenn alantou sa men pwomès nou fè yon sèl
nan pi bon fason nan opinyon mwen
reyèlman kenbe Kòd ou pwòp epi fasil li.
Se konsa, ki se jis yon ti bout tan entwodiksyon nan JavaScript
ak etajè liv ak Knex an jeneral.
Epi, si gen nan nenpòt kesyon, Mwen konnen li nan yon tòn materyèl
sòt de eseye ak kouvri espesyalman depi lang yo,
kontrèman ak pi ke ou se abitye avèk Se konsa, mwen jis te vle
fè li se konsa ke omwen si w ap gen pwoblèm
avèk kòd ou a, ou ka sòt de Ale nan -
sa a, se sa m 'renmen fè, se sòt de vole nan bibliyotèk yo
ke mwen lè l sèvi avèk ak wè fason bagay yo ap estriktire.
Genyen yon ke mwen te mansyone pi bonè rele Backbone.js
ak aktyèlman li nan [Fèbl] sou bò kliyan
ede bay modèl View estrikti kontwolè
nan kòd ou a.
Men, li aktyèlman gen komante sous dokiman
ki pèmèt ou sòt de wè.
Li nan vrèman byen ki dokimante yo, sa k ap pase sou li a,
kouman li ogmante fonksyonalite a Ajax
oswa fonctionnalités a evènman oswa modèl ak koleksyon sòt nan
pou eksplike sa ki nan ale sou nan pwosesis la.
Men, si ou konprann Basics yo nan JavaScript
tankou eritaj papa nou an prototypal ak jis ki jan yo yo te itilize fonksyon
kòm tou de objè ak valè ak klas ak tout bagay.
Li fè l 'yon anpil pi fasil yo konprann sa k ap pase
sou potansyèlman nan la bibliyotèk ke w ap lè l sèvi avèk
ak kòd debugjeur epi yo dwe kapab Pou yo pa frape tèt ou
kont miray la paske ou pa konprann ki jan nan
moso diferan yo ap travay, se konsa.