>> Bone tiel ni revenas, paro de goloj por hodiaŭ,
ni devos repreni kie ni cxesis lasta fojo,
memori, ke ni estis fari ĉi gamo
de servilo rilataj aplikoj, super simpla sed uzante nodo JS
kaj tiam ankaŭ la plej lastatempe uzante esprimas takto AS
kaj kio estis esprimita JS la analogo de en la PHP-mondo.
Do esprimas estas pli ... proksima,
tiel esprimas estas esence la MBC kadro kiu estas sufiĉe
populara en la nodo js mondo,
Breto, kiun ni jam vidos hodiaŭ tra Tim estas analogo
el la elokventa kio estas ORM sur objekto rilato Mapper
ke efektive faciligas por eviti malaltan nivelon SQL kodo
kaj reale esprimi rilatojn inter diversaj objektoj.
Do unu el la malvarmaj aferojn honeste
pri nodo js estas precize kiel ĝi facile pruntas
por fari realan tempon aplikoj, aĵoj kiel babilejo serviloj
aŭ mesaĝilon serviloj, ion, kio al vi knaboj nun uzi
kiel Google ... G-babilejo aŭ Google Hangout
aŭ Facebook statuso ĝisdatigojn aŭ eĉ Twitter se vi estas
sur ilia retpaĝo ĉio estas ia reala tempo
aux donas al vi la iluzio de reala tempo
kaj tio efektive doloron en la kolo por fari kun iu
kiel PHP kaj mia SQL dekstra kion ni proponas
lundon estus la rimedoj
per kio vi povus apliki la iluzio de reala tempo konduto
kun babilejo servilo en PHP, kion vi devas fari?
Alico sendas mesaĝon, hits eniri kie ĝi iras?
Jes.
>> [Inaudibles sekcio]
>> Into datumbazon kaj poste kion signifas Bob retumilo havi
fari al reale vidi kion Alico diris, jes?
>> [Inaudibles sekcio]
>> Konservu polling la datumbazo, Bone, do oni ajax peton havas
pafi ĉiun duan, ĉiu malmultaj duaj aŭ ni parolis mallonge
sed ne rigardu ekzemplon de iu nomita longa polling,
iu memoras kiom
ke mekanismo ... on altnivela laboras?
>> [Inaudibles sekcio]
>> Ekzakte, jes do navegador ankoraŭ faras ajax peto
al servanto, al foo dot php sed foo dot php simple ŝajnas
pendigu, ĝi esence sidas iu tempo buklo dum tiom da
kiel 30 sekundoj tipe kaj nur unufoje la foo dot php dosiero
rimarkas ho estas nova vico
en la datumbazo faras ĝi efektive respondas
per http-respondas.
Do vi opinias, ke tiu potenco alie pendas la servilo
kaj tio faras iagrade
sed ĝi signifas, ke estas multe malpli superkape
ĉar vi ne bezonas novan tcp rilato, nova HTP ligo
por fakte peti datumoj de la servilo.
Sed nodo js venas kun tre populara biblioteko nomita socket
dot io kion vi povis neniam uzata estas konstruita sur supro
de teknologio nomita retejo socket kiuj ĉeestas
en la plej modernaj legiloj, kaj kio socket io faras estas permesi vin
krei esence konstantan rilaton
inter retumilo servilo tio estas tre malaltaj superkape
tial vi ne nepre havi la sama skalo demandoj
ke vi povu, se vi estas senĉese batante la servilo
en la mondo de PHP kaj mia SQL kaj similaj.
Eĉ por malnovaj foliumiloj
kiuj ne elportas ttt socket ĉi biblioteko socket dot io povas
refalis sur ekbriloj efektivigo de bazoj
kaj bazoj estas retoj afero el CS143 ekz.
Aŭ ĝi povas eĉ refalis sur longaj polling sin tiel ili apliki
tiu sama speco de laboro
ĉirkaŭrigardis por efektive subtenas la iluzio de tiu rilato.
Do Socket [inaudibles] io kaj ĉi tiu estas en la formo
de java skripto biblioteko, esence, se vi uzas gxin
en la formo de nodo js apliko vi ne nur instali
ĝin kiel pakaĵon uzante ion kiel NPM kiun ni uzis lunde
kaj aŭ vi ankaŭ inkluzivas senvestigu etikedon en en via html-dosieron
kiu diras uzi la kliento flanko biblioteko.
Do ekzistas du duonoj al ĝin kaj kion ni faris ĉi tie
en la kvara ripeta de lundo la sekvenco
de ekzemploj estas la jena.
Do tiu dosiero strukturo estas memoras tre komuna aro
ĉe esprimis js kaj Bonŝance ĝi estas vojo pli simpla
ol lervo [fonetika] estis, memoras kiam vi starigos
supren lervo vi havas grandegan aĉa renversi de tuta kvanto de dosieroj,
vendisto dosierujoj, lib kaj tre pezaj pezo kompare al tio.
Nun en justeco ni deprenis for aĵoj estas bela multe pli
distro sed cxiuj sukaj stuff estas vere
en nodo moduloj.
Nur por doni al vi gusto, se ni rigardas
ĉe nodo moduloj ekzistas du moduloj aŭ bibliotekoj
kiun mi elŝutis, tiu estus la ekvivalento
de la vendisto dosierujo, oni nomas esprimas kio estas
kiel larevel sed en nodo
kaj socket io la kiun mi ĵus menciis.
Do tiuj ekzistas tiel ke ni povos fari la sekvan, se mi malfermos
supren diru indekso dot html, ni unue rigardu la html,
tio tuj formi tiu korpo, mia Super,
super simpla babilejo servilo.
Do tie estas ŝajne ul kun unika ideo de mesaĝoj
kaj tie estas kie unu li samtempe,
ĉiuj tujmesaĝiloj estas tuj aperas inter Alica
kaj Bob kaj tiam tie estas simplan formon kun teksta kampo
kaj submeti butono per kio Alico
aŭ Bob reale mesaĝon reciproke.
Do la reto efekton se Mi kuros ĉi apliko
per farado nodo spaco app dot js, se mi elsxiros paro
de retumilo fenestroj estas ke Alico povus esti sur la dekstra,
Bob povus esti sur la maldekstra kaj justa
esti klare ne estas magio ĉi tie mi havas unu fenestro
en incognito do ne kundivido de kuketoj aux ion
kiel tiu, ĉi tiuj estas du distingaj uzantoj.
Mi devus povi havi Alico diri saluton Bob, klaku submit
kaj nun vi vidas sur la maldekstra ke Alico mesaĝo estis sendita
kaj preskaŭ fulmobatita dekstre.
Neniu polling kvazaŭe implikitaj, Bob ricevis la saman mesaĝon.
Nun Bob diras diri hey Alico vi vidas la kontraŭan efekton.
Do kio vere okazas, kiom multe kodo Kion ni bezonas por skribi
apliki ĉi babilejon servilo
kion vi povas nun extrapolar mense, ke ĉiuj
en ĉi tiu ĉambro, se tiu ne estis je miaj [inaudibles]
sed sur foo dot com ni povus ĉiuj komenci babili fulmobatita
kun ĉiu alia.
Do kio estas implikitaj kaj antaŭ mi malplenigi la ekrano ĉi estas ĉi
Estas ĝuste Socket io estante iom brua, estas nur impreso
el elpurigi informoj al la ekrano,
tie estas vere nenio alie okazas tie.
Do mi malfermu app dot js, tiel kiel antaŭe ni havas kelkon
ĉe la supro de la dosiero.
Grapolo de asignoj, do tiuj estas kiel bibliotekoj
aŭ akrigi postsignoj aŭ postuli onces ajn mensa modelo vin
volas havi kaj justa al Recap FS uzas
cxar kia funcionalidad?
Do dosierojn sistemon tiel legi dosierojn potenciale kaj necesajxojn kiel tiu
kaj mi uzas tion en unu meti kiel vi vidos,
esprimas kompreneble estas ĉi kadro ke ni uzas,
ĝi estas strikte ne necesa ni povis
kiel lunde tute krei nian propran http-servilo de nulo
per farado krei servilon kaj ĉiuj de tiu speco da kodo de antaux
sed kiel ni vidos ĉi faras aferojn iom pli facile
ĉar ĉio, kion mi devas fari estas sur la linio 3 tien generi
kaj esprimi celon, mi vokos ĝi app, iom arbitre,
Mi do diras al la programo por aŭskultu sur arbitre haveno 1337,
kiu povus esti 80 por konvencio
kaj poste persiste mi havas novan linio hodiaŭ kio estas diranta
postuli la kontaktoskatolo Io bibliotekon kaj tiam
per tiu ĉeno alproksimiĝo farus ĉi skalara operatoro Mi estas nur
nomante lecionon aŭskultu tio esence diri la kontaktoskatolo
Io biblioteko ankaŭ aŭskultu tiu sama servilo
aŭ ttt socket rilatoj.
Do nun kio, do, kio estas tio farigxis, tiujn kvar liniojn
de kodo tie kiu devus aspektas memoras larevel,
kion signifas ĉi reprezentas?
>> [Inaudibles sekcio]
>> Jen ... itinero, simple itinero tiel en app dot js,
aka servilo dot js depende pri kio homoj volas nomi ĝin
en siaj propraj aplikoj vi havas la konvencio
fari difinanta viajn vojojn,
app dot get signifas kiam ajn vi ricevas get peto iri
al por laŭvorte oblikvo iri antaŭen kaj nomas tiun anoniman funkcion
kaj la anonimaj funkcio en tiu okazo prenas per postulo
aŭ peto kaj respondon, potenciale kelkaj aliaj aĵoj
sed minimume ĉi tiuj du.
La peto donas al vi aliro al aĵoj kiel http parametroj
kaj ĉapojn kaj aliajn sukaj aferoj
kaj tiam la respondo estas la mekanismo
per kiu vi povas respondi al la uzanto.
Do tiu estas super simpla eĉ kvankam ni ne vidis tute
saman kodon lasta fojo, mi estas uzante la dosiersistemon moduloj,
krei legitaj rivereto metodo kio esence faras tion,
krei legitaj rivereto kiu signifas esence komenci slurping
ĝis la bajtoj el indekso dot html kiel kompetente kiel vi povas
sen nepre atendis gxis vi legis la tutan dosieron
kaj kiel vi faras tion, pipon ilin laŭvorte
en la vertikala streko senco se vi estas komforta
kun la linukso komandlinio,
pipon ĝin al la respondo de objekto.
Do estis du ekzemploj rilataj al la rojoj lundon,
ni nur rigardis unu sed Vi plene rajtas retrorigardas
ĉe rivereto o kaj rivereto 1.
Rojo 1 ... 0 faris io simila al tiu,
rivereto 1 faris ion preskaŭ ekzakte kiel tiu,
ĉi tio estas nur platigi unu Liner diri specon
de slurp ion en ĉi tien kaj tiam komenci sendante tien
samtempe sen fari amasan samopinias
kaj tiam amasan pravas,
ĉi alproksimiĝo estas ĝenerale pli kompetenta.
Do tio estas speco de malnovaj aĵoj eĉ se ĝi estis nova lundon,
tio estas ĉio necesa por praktikigi babilejon servilo
kun nodo js kaj pli specife Socket dot io.
Do kiel faras ĉi tiu laboro, lasu min movi ĝin iom,
do io estas nur variablo kiuj referencas
al la modulon ni postulis pli frue,
dot socket estas nur propraĵo ene de ĝi
tio donas al mi socket rilatajn funcionalidad
on estas komuna metodo kiu rilatas al kion ĝenerala nocio?
Evento ktp aka aŭskulti en iuj bibliotekoj gxi nur signifas
Kaj auxdinte tion okazaĵo kiu estas nomata ligo
kaj nun vi scias tion nur el rigardante la dokumentadon,
kiu ajn skribis la biblioteko difinita evento nomata
ligo, kiun faras kion via pensus
Kiam Alico aŭ Bob konektas.
Antaŭen kaj nomas tiun anonima funkcio TAKE forpaso
en unu argumento la klienton kio estas ŝajne ia
de objekto kiu reprezentas Alice ligo
aŭ Bob rilato aŭ Charlie aŭ ajnulo
kaj nun ni faru la sekvan.
Ni diras al la kliento post li aŭ ŝi estas konektita
aŭskulti specife
cxar mesaĝo kiu estas tute arbitre nomas mesaĝon
dupunkto kliento.
Tio estas io ke Tim kaj Mi venis supren kun, ĝi povus esti foo
aŭ trinkejo, estas nur kelkaj unika kordo ke ni bezonis
decidas pri kiel la programistoj.
Kiam ajn Alico aŭ Bob aŭdas
ke okazaĵo ĉi anonimajn funkcio estas nomataj
kaj la datumojn, la enhavon de Alice
aŭ Bob mesaĝo devus esti pasis en tiun eventon traktilo
kaj nun kion faru la kliento faru bone vi povas speco
de legu ĉi sufiĉe intuicie la kliento devus transdoni,
alie sciata kiel elsendas mesaĝo nomata metodo servilo
per tio montrante tiun mesaĝon venas de la servilo ne
el la foliumilo kaj kion estus tiu mesaĝo esti,
ĝi estas ŝajne la utila ŝarĝo de kio ajn venis el la klientoj
kaj ni simple tuj arbitre nomas ĝin mesaĝo.
Do multan ĉi estas arbitraj
per racia nomanta konvencioj, Tim kaj mi venis
inventi, plejparte Tim kaj tiam ni simple kreas finfine oni
babili servilo kiu faras kion, Kiam Alico sendas mesaĝon
kaj sukcesojn eniri kia okazaĵo ŝajne gets ekbriliĝis,
nur Recap.
Alico tipoj mesaĝon, sukcesojn eniri, mesaĝo kliento ekbriliĝis,
tiun kodon aŭdas tion kaj nun La servilo dissendas kion,
kio estas la fina rezulto de tiu vere?
Alico sendas la mesaĝon nun La servilo rebroadcasts ĝi
efektive por ĉiuj krom por Alico, kial ĉiuj krom
por Alico, se vi nur rigardu
ĉe la dokumentaron kliento dot elsendo dot agnoski,
laŭvorte faras tion, dissendas la mesaĝo
al ĉiuj, krom la kliento, kiu sendis vin
ke plej freŝaj mesaĝo.
Do tiu estas kial vi sola vidi tion unufoje en ĉiu flanko,
vi ne vidas ambaŭ Alice kaj Bob atingi Alico mesaĝo.
Do jen tio, tiu Estas elsendante agento
se vi volas, ke estas nur preni en mesaĝoj
kaj rebroadcasting ilin el
kaj estas rimarkinde skalebla mi volas diri eĉ
kun super simpla servilo kaj kelkaj linioj
el kodon, kiun vi povis certe manipuli centojn, se ne miloj
de samtempaj simplaj mesaĝoj irante tien kaj reen kiel tiu
kaj imagu la komplekseco nun fari tion en PHD
aŭ Larevel aŭ mia SQL kaj kiom kodo vi havus
skribi en ordo al reale atingi tion.
Nun en justeco tiu ne estas konstantaj dekstra
se la servilo iras malsupren Ni perdas la tutan historion
do ĝi estas ne tute perfekta traduka sed estas
kiuj rekte antaŭen.
Ni rigardu la Java skripto kodo ni skipped super pli frue,
tio estas Alice-aj kaj Bob kliento,
La retpaĝo oni uzas nun ni rigardu supren tie por momento.
Estas iom pli kodo
sed ĝi estas sufiĉe tre simple jQuery tien por averti
ke en la retpaĝo ke mi tiris
supren antaŭ momento ni inkluzivas la jQuery biblioteko,
la socket io biblioteko kaj kiel an flanken rimarkos la diferencon
ĉi tie, oblikvo oblikvo ĉe la komenco de la vojeto
kiel tiu signifas kion ekzakte,
kie estas jQuery dot js sur kio servilo?
Jes.
>> [Inaudibles sekcio]
>> Ĝi estas sur la interreto yeah laŭlitere nomi kodo dot jQuery
dot com do kial oblikvo, oblikvo, kial ne nur unu oblikvo,
kie estas la http aŭ la dupunkto, kion tio signifas ĝenerale
se vi oblikvo oblikvo ĉe Komence de la url?
Ĝi estas fakte utila.
Okay do kio estas evidente mankas http nun se ni motivon
tra ĉi logike, tipe vi ne bezonas
mencii serviloj nomoj dekstra
kiel se nur uzu oblikvo jQuery dot JS kio estas supozita
per la retumilo?
Ke la dosiero estas sur la sama servilo tiom daŭrigi ke speco
de logiko, se vi ne diros al ĝin kio protokolo, kia estas la
retumilo supozi, sama protokolo tiom se vi iam vizitis retejoj
kiuj donas al vi eraro kune la linioj de necertaj enhavo
sur ĉi tiu paĝo estas ĉar ke iu forte coded an http
dupunkto oblikvo oblikvo URL por bildo aŭ Java skripto dosieron
aux CSS-dosiero, io simila en la fontkodo de la paĝo
sed la paĝo mem en la foliumiloj URL http s.
Do tiu estas nur la fantazio Iomete
diri Mi ne scias kion la protokolo estas
ke tiuj finaj uzantoj tuj uzi
sed nur certigi ke alumetoj tiel ke chrome
kaj aliaj retumiloj ne krias al la uzanto.
La sola kaptisto esti la jQuery homoj prefere starigu
supren https sur ilia servilo.
Do, ili estas efektive printante je 443.
Enorde dume tiu oni tie ĉi estas ia
de iluzia oblikvo socket Io sugestas
ke ekzistas dosierujo nomita socket dot io sur mia servilo
sed tie ne estas, se ni poke
ĉirkaŭ tie estas la nodo modulo dosierujon
sed ekzistas nenio publikon pri tio,
kiam oni agordas socket io por aŭskulti la samajn havenojn,
1337 esence ke biblioteko ke iu alia skribis estas iri
al ia enŝovu iun kodo en nodo js medio
kaj nur aŭskultu por ĉi vojo.
Tio biblioteko havas nur konfigurita itineron por tiu,
ĝi ne estas vera dosierujo.
Estus en norma situo.
Okay tiel nun la interesan parto,
do kiam la dokumenton estas preta, kiel indikita
per ĉi jQuery konstrui, unue mi tuj iros antaŭen
kaj konekti al bazo,
kio socket nur ... konservi ĝin simpla Mi tuj konekti
al oblikvo, jen kie la uzanto estas,
Mi gardis la ekzemplon simplan Ni nur tuj konekti
al la ĝusta sama retadreso kiun la uzulo vizitis tiam mi iros
fari la sekvan, mi tuj diru Alicia aŭ de Bob retumilo
por aŭskulti la mesaĝo de la servilo.
Denove tio povus esti foo
aŭ bari ajn vi aŭdi mesaĝon
el la servilo nomas ĝin datumoj kaj poste fari tion jQuery kodo
kiun mi konjektas plej se Ne ĉiuj estas familiara
kun tiuj tagoj, sed esence pinglo al listeron
al la ekzistantaj UL kiu Estis nomita mesaĝojn
kiu laŭvorte diras kion ajn la ŝarĝo estas
de la babilejon mesaĝo sekvata de streketo, sekvata de ricevi,
sekvata de spaco kaj tiam ĝisdatigo tempo kaj ke tial
esti klaraj se ni reiros
al ĉi tio vi ricevas tiujn aldonan kugloj denove kaj denove
kaj denove kun dato fojojn.
Dume, se ni rigardas malsupren tie ni nur devas
manipuli la formo submetiĝo tiel ke estis la akcepto
de tuj-mesaĝon, jen la sendo kaj ĉi tiu estas speco
de nerilata al nodo js, ​​aŭskultu al la formoj submit okazaĵo.
Kiam okazas malhelpi defaŭlte, tio simple signifas, ne publikigu ilin
al la servilo en la kutima vojo, reŝarĝi la tuta paĝo,
ni volas fari ĉi ĉiujn per ajax.
Jen nur kelkaj jQuery kodoj
por reale preni la enigo kies tipo estas mesaĝo,
kies nomo estas mesaĝo iri antaŭen
kaj get estas valoro tiam vi iru antaŭen
kaj se vi efektive havas mesaĝon, se Alice kaj Bob
aŭ Bob vere tipoj iuj neniu 0 nombro pulsbatoj elsendas
sur la ingo mesaĝon nomata mesaĝo klienton kun tiu ŝarĝo
kaj tiam malsupren tie ĉi estas kion faras verda kontraste
al ruĝa, ni simple eligo aparato flanko [inaudibles].
Do jen ĝi sed ĉiuj tio estas ĝuste la starigi,
la reelaj novajn aferojn Mi volus argumenti estas ĝuste tiuj tri
aŭ kvin linioj de kodo tien kaj pri tiaj aludoj je la potenco
de nodo js kaj kun ĝi tiu aparta biblioteko.
Do ni prenu rapida rigardi esprimas dot js,
do kion mi provos fari en la ceteraj paro
de minutoj tie estas starigi kelkaj ideo, kelkaj teknikoj
ke estos tiam prenu paron minuto ripozon, Tim starigos
kaj tiam ni vidos plonĝi en profundan
al pli interesa esprimi apliko kaj ankaŭ
al breto, la biblioteko la Tim efektive skribis
por la malfermita fonto komunumo
kiu donas al ni elokventa lumo funcionalidad kun mia SQL
kaj transakciojn kaj aliaj tiaj karakterizaĵoj kaj li havos ankaŭ plonĝi
en iom pli profunden al la lingvo Java skripto mem,
kiom lia celo aŭ ne-klaso modelo funkcias alie scias
kiel prototipo modelo, iuj pli pri la estonta.
Do ni rigardu du lastaj aplikoj tie, servilo kvin
kaj servilo 6 kiu estas ĉiuj ian similan en spirito,
ĉi tiuj estas ne babili serviloj sed ili uzas rapida.
Do ni rigardu kion tio efektive faras,
Mi tuj iros antaŭen kaj malfermita ... Mi tuj kuros ĉi app
kun nodo app js, mi tuj reiru al mia retumilo freŝigi
kaj ĉi tiu estas ŝajne ĉiuj ĉi servilo estas faranta,
ĝi estas super simpla servilo tio ŝajne serĉo
motoro do se mi tajpas en foo kaj submetigxu, neniu serĉrezultoj
por foo, mi ne ricevis around realiganta la malnaiva
reen finon, ĉio tio okazas
fari estas eĥo negrave kio vi tajpas neniu rezultoj por foo,
rezultoj por trinkejo tiom kiom ni faros ĉi
ĉar tie estas paro pecoj, unu,
ne estas klare iuj enigoj proviziita
al la servilo ne Larevel kompreneble sed nodo js nun
do ni bezonas iel akiri en tiu parametro Q,
ni klare faras ia vidpunkto ĉi tie,
ni preta view tiom eble ekzistas ŝanco
por ŝablonoj aŭ variablo interprelation [fonetika]
do ni rigardu ĉe la jena.
En app js por tiu ĉi aparta servilo ĉi estas ĉiuj ni havas.
Unu ni postuli esprimi mem, du la vojon modulo
kiuj simple faras kelkajn utila stuff
kiel aliĝi kordoj kune kaj tiel plu por mi,
Mi aŭskultas la haveno 1337 kaj nun ĉi estas nova tiom rezultas
el kiuj esprimas kiel Larevel subtenas malsamajn plug ins
kaj teknologioj kaj aliajn aĵojn kaj unu
de la teknologiojn, ke vi povas konekti estas view motoro
kiu signifas nur kion templating motoro vi volas uzi,
Larevel havis ĝia propra aĵo sed vi povas ŝtopi
en malsamaj aferoj, malsamaj persiko P kadroj havas
malsamajn manierojn de templating, ejs estas nur komuna
kaj belan simplan motoro ke ĝuste ni vin fari aferojn
kiel la krispa streĉaj kiu vi havis en Larevels sintakso
por anstataŭiganta variabloj,
ĝi estas iom malsama sintakse estas ĉio.
Do nun estas ĉi afero nomata mezo komercajxojn tiom kiom vi vidos
en via propra teamoj nodo projekto mezo komercajxojn estas nur ia kodo
aŭ bibliotekoj kiuj vi injekti
en la [inaudibles] respondo vivo ciklo de apliko,
alivorte tiuj du linioj estas diranta esprimas
fari ian ekstran laboron inter la tempa ĝi prenas peto
kaj inter la tempo sendas ke peton al via propra vojo,
vian kodon, kiun vi jam skribis.
Do precipe tiu lineo tie uzi esprimas dot statika kaj cxio
de tiu komplekseco tiu justulo signifas, ke se vi vidas peto
kiu venas en por statika dosieron kiel foo dot jif aŭ foo dot css
aŭ foo dot JS do ne dinamike generas itinero,
iru antaŭen kaj alpreni vivas en la publika subdosierujo,
tio estas ĉio, kion faras.
Ĝi estas speco de kiel surĵeto en Larevel, ĉiu al via retejo
aŭ via publika dosierujo prefere en Larevel.
Ĉi sekvanta linio estas simple dirante mi volas uzi itineroj,
Mi volas uzi tion kiel app dot preni
kiun ni vidis antaŭ momento kaj ni vidos en nur la duan nun.
Do app dot preni rimedojn aŭskultu dum tiu vojo,
oblikvo kiam vi enretigos ĝin nomas tiun anonima funkcio kiu prenas
en peton kaj respondo kaj nun nur
kiel Larevel vi havas vojon preta ŝablono,
respondo dot redonu, quote unquote indekso,
redonu estas ŝablono vokis indekso,
jen gxi do ni malakceptos ke fadeno por nur momenta rigardo
ĉe la enhavo de la opiniojn dosierujon
kaj rimarkas ĉi tro estas super simpla por nun,
tie estas indekso dot ejs kaj serĉu dot ejs,
Mi evidente volis la unua
ĉar tio estas la unu mi simple laca por repagi kaj ni vidos
en viditaj indekso dot ejs plej efektive tute html
ĉe la momento, estas fakte neniu templating okazas.
Do mi teknike ne eĉ bezonas nomi ĝin ejs,
Mi ne bezonas tiun funcionalidad sed mi observis lin uniformo,
tial jen gxi, tiu estas kion donas al mi, ke super simpla formo.
Do tie estas nur unu alia vojo, se ni rigardas malsupren tie Mi jam diris
ke ĉi tiu estas kion manipulas akiri oblikvo serĉo tial la efektiva speco
de Google kiel traktilo por la formi submetiĝo, kiam vi ricevas
tiun vojon nomas tiun anonima funkcio
kaj redonu la ŝablono vokis serĉo
kaj kio estas la dua argumento supozeble signifas.
Ĝi aspektas kiel JSON objekto de specoj aŭ Java skripto objekto.
Kio estas la rolo de tiu dua argumento supozeble?
>> [Inaudibles sekcio]
>> La efektiva konsulto, ke la uzanto tajpita en ŝajne vivas
en peton dot konsulto, informpeto raportante al ĉio
post la demandosigna dot q, kiu estas la arbitra nomo
kiun Mi donis gxin simple kiel Google
kaj dume q dupunkto estas nur dirante, trairi en la ŝablono,
search dot ejs, a ŝlosilo de q kaj valoro
sendistinge q estas reala valoro estis.
Do kiu lasas nur unu dosiero de intereso al opinioj,
search dot ejs mi tenis tiu super simpla tro,
Ĝi estas plejparte nur html krom dum unu iom rimarkinda linio
kio estas ĉi tiu sintakso tie kiu aspektas kiel faskon
de malsamaj templating motorojn ĉi ĝuste signifas ŝtopilo
en la valoro de q kaj faru al gxi grasaj.
Do ne estas reala serĉo funcionalidad sed faras specon
de sugesti kiel vi farus strukturi skeleto
de apliko tiel.
Dume ... fakte mi povas montri unu alia afero,
rimarki, ke mi ne havas iun html supren tie por css dosierojn
kaj Java skripto dosieroj, nenio estas en tiuj dosieroj
ĉe la momento, sed rimarkas ke estas publika dosierujo
kiel mi diris antaŭe por statikaj dosieroj do se mi foriras
tie ekzistas mia css dosierujo,
se mi iros tien tie la stilojn dot css
kaj tie estas neniu enhavo tie
sed tio estas kiel vi farus havi publikan atingebla dosierojn.
Enorde ni rigardu ĉe unu alia varianto tien
kaj tiam ni povos enkonduki unu ideo kaj ripozon.
Do tiu estas servilo 6 la lasta, do tio estas preskaŭ identa escepte
cxar la subaj du linioj kiuj aspektas kiel ĉi tio.
Do fakte tie estas tria linio kiu estas malsamaj
sed mi kaŝita ... do lasu min denove supren iomete tiel faras iu volas
proponi kio okazas en ĉi tie en laiko La terminoj
aŭ teknikajn terminojn kio estas malsamaj pri tiu versio
kun respekto al tiuj liniojn en la supra nodoj.
Kio estas inter mi kaj supozeble tieaj kaj kial?
Yeah, Sharon.
>> [Inaudibles sekcio]
>> Jes ĝi aspektas kiel mi jam movis indekso kaj serĉo
tiom apartaj rekta aŭ ion, Mi faktorita ilin el
kaj tio estas tia ke tre ŝatas en Larevel vi povus meti ĉiuj
de via regilo logiko interne de itineroj dot php
per anonima funkcioj denove kaj denove kaj denove
sed tiu dosiero kompreneble povas ricevi belajn amasajn
tial en itineroj dot PHP kio plej
de you guys estis farante Estas vi jam specifis la nomo
de controlador klaso aŭ eĉ la nomo de metodo
kiuj devus get nomata
do la sama ideo tie eĉ Kvankam la sintakso estas iom
malsamaj tiel ĉi tien avizo
ke mi havas ŝajne implementado mia propra nodo js
modulon kaj modulo estas nur Java-skripton kiu aliĝas
esence unu konvencio ke ni vidos en nur unu momento.
Do supozu, ke ĉiuj el mia funcionalidad por indekso
kaj por serĉo havas ŝajne estis metita en tiu ĉi dosierujo
kaj nun mi vokas, ke tutaj modulo aŭ pakaĵo aŭ biblioteko,
kion ajn vi volas pensi pri tio kiel,
kiel itineroj variablo vokis itineroj.
Do ŝajne en tie itineroj dot indekso estas metodo nomata
indekso kaj ŝajne ekzistas alia metodo nomata serĉo
en ĉi itineroj moduloj aŭ biblioteko
kaj mi simple routing ĝi ĝuste tial, ke mi ne metas ĉiu
de miaj anonima kodo interne de mia app dosiero.
Do ni iru en itineroj Notice tie estas nur indekso dot js
kaj se mi rigardas en tie ĉi estas la konvencio mi signifis pli frue
tial cxi tiu estas sufiĉe arbitraj sed ĝi estas la nodo konvencio.
Ajna tempo vi apliki viajn proprajn nodo js biblioteko,
aka modulo vi esence povas skribi ajnan Java skripto kodo vin
ĉu en tiu dosiero, gxi esti tre purema sablo boksis
tiel, ke ajna variablojn vi elekti ne karamboli
kun iu alia biblioteko, variabloj aŭ metodoj aŭ io
kiel tio sed ion vi volas elmontri
al la ekstera mondo ala a publika metodo en Java skripto
aŭ php aŭ aliajn lingvojn vi devas Plop interne
de tutmonda celon, ke la aŭtoro de nodo nomata eksportoj.
Do per farado eksportoj dot indekso mi elmontrante por uzantoj
de tiu modulo metodo nomata indekso kiuj mapas al ĉi funkcio
tial ĝi estas anonima sur la dekstra flanko
sed mi efektive ĝin donante nomon sur la maldekstra flanko
kaj eksportante ĝin al la mondo
por ke vi povas nomi dot indekso aux dot serĉo.
Do por esti klara, se mi ankaŭ havis iu kiel funkcio foo
en ĉi tie kiuj faris ion
ke funkcio farus absolute esti operativa,
povus nomi en tiun dosieron sed neniu
en la ekstera mondo malvarma iam nomas foo
ĉar ĝi estas ne eksportis per vojo de cxi tiu punkto skribmaniero.
Do jen ĉio tio okazas,
ĉiu estas bele nomumi interspacigitaj por vi.
Do la fina rezulto, se mi faras nodon de app kaj reŝarĝi la paĝon
ke se mi nun serĉo
por trinkejo ... funkcie ĉi tiuj aplikoj estas la sama
sed ĝi estas nur speco de paŝo al pli pura efektivigo,
certe kiam vi komencas skribi pli kaj pli kodo
kaj tio estas cxio cxi estas.
Evidente ne aparte kompleksa aŭ komplekso
sed esence deirpunkto
pro kio estos via unua nodo js programon.
Kion ni faros verŝajne poste tiu semajno aux cxi semajnfino
kiel vi estas finita supren sur la php aplikoj ni devos sekvi
kun bela simpla apliko por la teamo por plonĝi
en simila spirito la varma supren ekzerco por php
kiuj bazis sur la meze semestro enketo,
uloj ne trovi helpo irante tra la ekzerco
de faranta ion sufiĉe simpla
sed sufiĉe gvidis antaux vi reale pritrakti ion pli
sur via propra do ni volas sekvi supren kun tiu
kaj esence estos pro unu semajno kaj duono
de nun interkovrantaj iomete kun php intence.
Demandojn tiam esprimi, en ingo io
aŭ konfuzon ceteraj de lundo eble.
Enorde do espereble unu el TAKE-al-manieroj tiel malproksima estas
ke tie estas nur por kelkaj el tiuj aferojn certe multe malpli
superkape ol vi eble uziĝis por.
Do lasu min enkonduki unu lastan ideon,
tiel tre komuna programado paradigmo
en Java skripto kiu estas efektive ĉeestas en jQuery
en la lastaj versioj tial povus havi vere vidis tiun teknikon
antaŭe sed ĝi estas ankaŭ sufiĉe komuna en la nodo js mondo,
ĝi estas komuna en Tim propra breto biblioteko
do ni havos reviziti ĉi en pli konkretan ekzemplon
momente estas solvo kodigi kiel tiu,
tio estas reprezentanto de kodo Ni vidis, lunde, do legi dosieron
en ĉi tiu kunteksto ne estas reala metodo estas similaj en spirito
al fs dot legi dosieron sed supozi ke tio estas nur iuj faris
supren metodo kiu faras io tre simila.
Do ni kuris en kelkaj demandojn lunde en ĝenerala
do kio estas speco de ... kial Estas ĉi glitiga deklivo,
ĉi denove nomas paradigmo de programado Java skripto
kaj per denove nomas paradigmo Mi nur volas diri ĉi tekniko
kie vi ne revenos valorojn tuj
ĉar tio forteco bloki la servilo
por fari ion alian, kiu estas utila, vi anstataŭ voki reen
kiel la buzzers ĉe Shake Domaĉo, kiam vi estas preta
pasi reen respondon kiel argumento.
Tio ĉi estas glitiga deklivo
kie tre rapide iĝas ĝena kial?
Jes.
>> [Inaudibles sekcio]
>> Jes, minimume tio igas ia nelegebla dekstra
se vi havas ĉiujn tiujn alvoko dorsojn kaj se vi aliĝi
bonan stilon gxin Fariĝas bela amase dentado
tra la tempo kaj okazo mi notas ĉi Ekzemple se vi ian senkremigi
tra gxi estas simple signifis al malfermi JSON-dosieron kaj presi ĝin,
kiel tio estas kaj tamen ni havi iom 8 aŭ 10 linioj tie
kiu jam estas speco de nastily marĝeno,
ni havas try kaptisto, kiu estas
se vi estas nekonataj estas Eraro uzado tekniko
kiu permesas vin provi ion
kaj se ĝi malsukcesas tiam vi kaptas espereble
sen via tuta programo finanta sed estas
tiom multe komplekseco kiel vi afabla de havi tion sentu tra
kaj Dio malpermesu ni fari kelkajn aliaj asincrónico metodo flamo,
la afero estas jam tuj estos ĉi tie,
vi eble pensas, ke estas speco de stulta estetikaj sed tiu
ĉar la alvoko reen paradigmo estas tiel komuna almenaŭ
en denaska nodo kodo koncerna tre rapide fariĝis teda,
Malfacile debug, la deŝovon komencas gravas tiel vi povas ordigi
de persekutado aferojn malsupren, ĝi estas nur ne tre feliĉan vojon
de programado.
Do kio uloj faris
en diversaj kuntekston nodo inter ili estas provi simpligi ĉi tion,
os ekzemple promesoj estas alia maniero de pensado
pri skribado asincrónico kodo ke vide igas ion
kiel versio 1 enen ĉi versio 2.
Mi asertas, kaj ĉi tiu estas denove nur ia miksita
inter reala kodo kaj pseŭda kodo, tio estas reprezenta
de kiel vi devus re-apliki ke ĝusta samon,
malfermi JSON-dosiero, analizi ĝin kaj presi gxin
el uzante ion vokis promesoj
kaj la ŝlosilo sintaksan detalon estas
ke tie estas sinsekvon irante sur ĉi tie.
Rimarku, ke la sola punktokomo
en la tuta ... efektive bone ni ... Mi ne volas trompi.
Tiu ne estas strikte necesaj sed ni estu kohera,
rimarki, ke la punktokomo ke temas pri la malfermo
de tiu tuta komunikaĵo Estas tuta vojo suben ĉi tien.
Do, kiam mi jam formatita tio ... ia rigardu
kiel tri asertojn, tri asertoj ke vi povus vidi
en Java aŭ aliaj lingvoj kiuj havas try kaj kaptu
kaj escepto uzado pli ĝenerale.
Rimarku, ke mi simple ĉeno la reveno valoro de ĉiu
de tiuj metodoj kune.
Do kio okazas, legi dosieron se tio estas metodo kiu ekzistas,
ŝajne provas legi tiun dosieron,
dot tiam tiel do estas tre komuna nomo donita en la mondo
de promesoj por la metodo kiu devus ekzekuti
se la antaŭa afero sukcesis.
Do ĝi estas speco de kiel la sukceso traktilo, do tiam JSON dot analizi,
bone JSON dot analizi formulon estas nur metodo
en la tutmonda JSON biblioteko kaj ĝi ŝajne aliĝas
en ĉi tiu kazo la promeso modelo
tial ni diras, ke ni povos ĝuste supozi ke alvoko ĉi ulo
kaj se li sukcesos, tiam voki ĉi ulo kaj poste
se tio estas fakte ekzekutas simple konsoli ensaluti la datumoj
en tiu demando.
Do kie estas la eraro uzado, rimarkas mi specon
de tre blinde paŝis demeto kornico
kaj ĝuste nomi ĉi metodo kaj tiam ĉi metodo
sen iam kontrolanta por problemoj.
Nu, kie estas tiuj problemo supozeble manipulis ... en tiuj
kaŝmemoro deklaroj tiel malsama bibliotekoj uzas malsamajn
konvencioj sed en ĉi kazo do estas speco
de la sukceso traktilo, caché estas ia eraro traktilo
kaj ĉar ni ne rompita tiu ĉeno ni nur plu uzi
dot notacio por ligi kune la originala metodon alvoko
de legado de dosiero kaj la funkcio Alvoko pri eraroj speco
de bobelo sian vojon tra la ĉeno
ĝis ili estas reale manipulitaj kio estas vojo pli pura ol klopodi
trakti kun ĝi ĉiu malbenita ŝtupo de la vojo
por ke via kodo tre rapide fariĝas nereala datumojn.
En ĉi tiu kazo ni estas asertante, ke ni provu
kapti kio nomiĝas Sintakseraro ĝi estas esence
subklaso de pli ĝenerala eraro kaj se tio okazas aserto
ke ĝi estas nevalida JSON alie se ĝi estas pli ĝenerala eraro
ke ni ne atendis nur pli ĝenerale diri neniom
legu dosiero.
Nun tiu estas simple signifis esti reprezentanto kodo
sed se vi jam planis en kruda Java skripto aŭ en Javo
aŭ aliaj lingvoj tiu estas proceduraj kodo esence,
ĉi tiu estas pli tradicio provu catch komunikaĵo
kaj tio estas la estetikaj kaj la funcionalidad kiu promesas
aŭ provas doni al vi per kiu vi povas pensi pri ĝi
kiel simple skribi try kaj poste kapti kaj tiam kapti ne havante
zorgi je ĉiu sola ebla punkto
kie eraro multobligita manipuli ... okazi,
vi povas manipuli ĝin tute ĉe la fini drajvo de malgranda bloko
de kodo, kaj vi povas eĉ distingi inter eraroj
kiel vi povas en tiu kazo tie.
Do la nomenklaturo, ke vi vidi en la literaturo eble
kiel Tim prezentas kelkajn de tiu stuff tro estas
ke ideale oni volas promesas solvi
kaj solvante promeso rimedoj ke fine reveni por tiel diri
sed ne en tradicia maniero de la valoro, tial ĝi ĉu sukcesos
cxar mankas esence.
Enorde demandojn tiam, ĝi ne intencis esti sufiĉaj
por ekspono al promesoj sed nur mensan modelon
cxar la kodon, kiun vi komencos vidi.