>> Kull dritt hekk aħna lura, koppja ta 'miri għal-lum,
aħna ser pick up fejn aħna jitħalla 'off aħħar darba,
ifakkar li konna jagħmlu dan suċċessjoni
ta 'applikazzjonijiet ta' servers relatati, super sempliċi iżda bl-użu node JS
u allura wkoll aktar reċentement jużaw touch express AS
u dak li kien espress JS l- analogu ta 'l fid-dinja PHP.
Allura express huwa aktar ... qrib,
hekk express huwa essenzjalment l- Qafas MBC li pjuttost
popolari fid-dinja JS node,
Librerija li aħna ser tara illum permezz Tim huwa analogu
tal-elokwenti li hija ORM fuq mapper rigward oġġett
li attwalment jagħmilha aktar faċli biex jiġi evitat kodiċi SQL livell baxx
u fil-fatt jesprimu r-relazzjonijiet fost oġġetti varji.
Allura wieħed mill-coolest affarijiet onestament
dwar js node huwa kemm faċilment tippresta ruħha
li jagħmlu applikazzjonijiet ħin reali, affarijiet bħal chat servers
jew servers ta 'messaġġi, xi ħaġa li inti guys issa jużaw
bħall-Google ... G-chat jew Google hangout
jew aġġornamenti istatus Facebook jew saħansitra Twitter jekk inti
fuq il-paġna web kollu tagħhom huwa tip ta 'ħin reali
jew jagħtik l- illużjoni ta 'ħin reali
u li attwalment uġigħ l-għonq li tagħmel ma 'xi ħaġa
bħal PHP u SQL tiegħi dritt dak li ma nipproponu
nhar it-Tnejn se jkun il-mezz
li permezz tiegħu inti tista 'timplimenta l- illużjoni ta 'mġiba ħin reali
bi chat server PHP, dak li għandek tagħmel?
Alice jibgħat messaġġ, hits jidħol, fejn ma tmur?
Yeah.
>> [Taqsima inaudible]
>> Fis-bażi tad-data u mbagħad dak ma browser Bob jkollhom
tagħmel biex effettivament jaraw dak Alice qal, yeah?
>> [Taqsima inaudible]
>> Żomm polling-database, dritt, hekk talba ajax għandha
għan-nar kull tieni, kull ftit sekonda jew tkellimna fil-qosor
iżda ma nħarsu lejn eżempju ta ' xi ħaġa imsejħa polling twil,
ħadd jitfakkar kif
dak il-mekkaniżmu ... dwar livell għoli xogħlijiet?
>> [Taqsima inaudible]
>> Eżattament, yeah so a browser għadu jagħmel talba ajax
għal server, għal foo dot PHP iżda foo dot PHP ftit jidher
li hang, essenzjalment tpoġġi fil-linja waqt li għal kemm
30 sekonda tipikament u biss ladarba l-fajl dot PHP foo
jirrealizza oh hemm ringiela ġdida
fil-bażi tad-data ma huwa effettivament tirrispondi
ma jirrispondi http.
Allura inti taħseb li dan jista ' inkella hang-server
u ma sa ċertu punt
iżda jfisser hemm ħafna inqas overhead
għaliex inti ma għandekx bżonn TCP ġdid konnessjoni, konnessjoni htp ġdida
li attwalment jitlob data mill-server.
Iżda js node tiġi flimkien ma 'ħafna librerija popolari imsejħa socket
dot io li inti tista ' qatt jintużaw hija mibnija fuq quċċata
ta 'teknoloġija msemmija Web sokit li huwa preżenti
fil-browsers aktar moderni u liema socket io ma huwa jippermetti li inti
biex joħolqu essenzjalment konnessjoni persistenti
bejn browser u server li l-overhead baxx ħafna
Allura inti ma neċessarjament jkollhom l-istess kwistjonijiet skalar
li inti tista 'jekk int kontinwament laqtu l-server
fid-dinja tal-PHP u SQL tiegħi u simili.
Anke għal browsers anzjani
li ma jsostnux web socket din il-librerija socket dot io jistgħu
jaqgħu lura fuq fwawar implimentazzjoni ta 'sockets
u sokits huwa netwerking Ħaġa minn CS143 per eżempju.
Jew tista 'anki jaqgħu lura fuq twil polling nnifisha sabiex dawn jimplimentaw
l-istess tip ta 'xogħol
madwar għal attwalment tmantnih l-illużjoni ta 'ir-rigward.
Allura socket [inaudible] io u dan huwa fil-forma
ta 'librerija b'kitba java, essenzjalment jekk tużah
fil-forma ta 'JS node applikazzjoni inti mhux biss jinstallaw
bħala pakkett tuża xi ħaġa bħal NPM li aħna użati nhar it-Tnejn
u jew inti jinkludu wkoll strixxa tag fi fil-fajl html tiegħek
li tgħid jużaw l- klijent librerija ġenb.
Allura hemm żewġ nofsijiet sa dan u dak li aħna ghamilt hawn
fir-raba 'iterazzjoni ta 'sekwenza nhar it-Tnejn
eżempji hija din li ġejja.
Allura din l-istruttura fajl huwa reminixxenti ta 'sett komuni ħafna
up għall js espressi u Thankfully huwa mod sempliċi
minn [fonetiku] lervo kien, recall meta tissettja
up lervo inti ltqajna enormi diżgustanti dump ta 'lott kollu ta' fajls,
direttorji bejjiegħ, LIB u ħafna piż tqil meta mqabbla ma 'dan.
Issa fil-ġustizzja konna imqaxxar bogħod għalf li pjuttost ħafna
distrazzjoni, iżda l- Jittieħed mmerraq huwa hu verament
fil-moduli node.
Just biex jagħtuk togħma jekk inħarsu
fil-moduli node hemm żewġ moduli jew libreriji
li stajt jitniżżel, dan ikun l-ekwivalenti
tad-direttorju bejjiegħ, wieħed tissejjaħ espressa li huwa
bħal larevel iżda node
u sokit io l- wieħed I biss imsemmija.
Allura dawk jeżistu sabiex inkunu nistgħu tagħmel dan li ġej jekk I miftuħa
up ejja ngħidu indiċi dot html, ejja ewwel ħarsa fiż-html,
dan se tikkomponi dan il-korp, super tiegħi,
chat server super sempliċi.
Allura apparentement hemm a ul bi idea unika ta 'messaġġi
u li fejn Li wieħed fi żmien,
kollha tal-messaġġi instantanji huma ser jidhru bejn Alice
u Bob u allura hemm formola sempliċi ma 'qasam tat-test
u buttuna issottometti bih Alice
jew Bob jistgħu attwalment messaġġ xulxin.
Allura l-effett nett jekk I run din l-applikazzjoni
billi tagħmel node app ispazju dot JS, jekk I pull up koppja
ta 'twieqi browser huwa li Alice jista 'jkun fuq il-lemin
Bob jista 'jkun fuq il- xellug u biss
li jkun ċar hemm ebda magic hawn Stajt ltqajna tieqa waħda
fil incognito hekk hemm ebda qsim ta 'cookies jew xejn
bħal dan, dawn huma żewġ utenti distinti.
I għandhom ikunu jistgħu jkollhom Alice jgħidu bonjour Bob, ikklikkja jissottomettu
u issa tara fuq ix-xellug dak il-messaġġ Alice intbagħtet
u kważi istantanju fuq il-lemin.
Nru polling apparentement involuti, Bob irċieva l-istess messaġġ.
Issa Bob jgħid ngħid ħej Alice tara l-effett oppost.
Allura x'inhu verament għaddej, kif Kodiċi ħafna do we bżonn jiktbu
biex jimplimenta dan chat server
li inti issa tista 'tiġi estrapolata mentalment li kulħadd
f'din il-kamra jekk dan kinux fuq [inaudible] tiegħi
iżda fuq foo dot com nistgħu kollha bidu chatting istantanju
ma 'xulxin.
Allura x'hemm involuti u qabel I ċar dan l-iskrin dan huwa dan
huwa biss socket io tkun ftit storbjużi, huwa biss l-istampar
out debugging informazzjoni għall-iskrin,
hemm verament xejn inkella għaddej hemmhekk.
So let me tiftaħ JS dot app, hekk bħal qabel konna ltqajna ftit affarijiet
fil-quċċata tal-fajl.
A mazz ta 'rekwiżiti, għalhekk dawn huma bħal libreriji
jew tiffoka indikazzjonijiet jew jeħtieġu onces kwalunkwe mentali mudell li
tixtieq li jkollok u biss Biex terġa FS hija użata
għal liema tip ta 'funzjonalità?
Allura sistema fajls tant qari fajls potenzjalment u għalf bħal dik
u I jużaw dan f'wieħed post kif tkun taf tara,
espressa tal-kors huwa dan qafas li aħna qed tuża,
huwa strettament ma meħtieġ nistgħu
bħall-Tnejn joħolqu totalment server http tagħna stess mill-bidu
billi tagħmel toħloq server u kollha ta 'dan it-tip ta' kodiċi minn qabel
imma kif aħna ser tara dan jagħmel affarijiet ftit aktar faċli
minħabba I kollha għandek tagħmel huwa on line 3 hawn instantiate
u oġġett jesprimu, I ser sejħa dan app, kemmxejn arbitrarju,
I ser mbagħad tgħid l-app li jisimgħu fuq arbitrarju port 1337,
li jistgħu jkunu 80 permezz tal-konvenzjoni
u mbagħad fl-aħħar I jkollhom ġdida linja llum li qed tgħid
li jitlob lill-socket io librerija u mbagħad
billi dan l-approċċ katina kieku dan l-operatur dot jien biss
ssejjaħ lezzjoni tisma li l- essenzjalment javżak il-socket
io librerija biex ukoll tisma 'l-istess server
jew web konnessjonijiet sokit.
Allura issa dak li, iva, liema huwa din tagħmel, dawn l-erba 'linji
tal-kodiċi hawn li għandu ħarsa reminixxenti tal larevel,
dak ma dan jirrappreżenta?
>> [Taqsima inaudible]
>> Din hija ... rotta, just rotta hekk JS dot app,
aka js server dot skond fuq dak in-nies iridu li hija sejħa
fl-applikazzjonijiet tagħhom stess għandek konvenzjoni
jagħmlu jiddefinixxu rotot tiegħek,
app dot get ifisser kull meta ikollok talba get li jmorru
li għall litteralment mmejla jimxi 'l quddiem u sejħa din il-funzjoni anonima
u l-funzjoni anonimu F'dan il-każ jieħu mill-ħtieġa
jew talba u rispons, potenzjalment xi affarijiet oħra
iżda minimament dawn iż-żewġ.
It-talba jagħtik aċċess għal affarijiet simili parametri http
u headers u oħrajn affarijiet mmerraq
u allura l-rispons huwa l-mekkaniżmu
li permezz tiegħu tista jirrispondu għall-utent.
Allura dan huwa super sempliċi anki jekk aħna ma tara pjuttost l-
istess kodiċi aħħar darba, jien użu tal-moduli fajl sistema,
joħolqu metodu stream read li essenzjalment ma dan,
joħolqu nixxiegħa taqra li ifisser essenzjalment tibda slurping
up-bytes mill-indiċi dot html b'mod effiċjenti kemm tista '
mingħajr ma neċessarjament tistenna till tiegħek jaqra l-fajl kollu
u kif inti tagħmel dan pajp litteralment
fis-sens bar vertikali jekk int komdu
mal-linja tal-kmand Linux,
pajp lill-rispons ta 'oġġett.
Allura kien hemm żewġ eżempji relatata mal flussi nhar it-Tnejn,
aħna biss ħares lejn wieħed iżda inti qed jilqgħu biex inħarsu lura
fuq o nixxiegħa u stream 1.
Stream 1 ... 0 għamlet xi ħaġa simili għal dan,
stream 1 għamilt xi ħaġa kważi eżattament bħal dan,
din hija biss roqgħa liner waħda ta 'tgħid tip
ta slurp xi ħaġa fuq hawn u mbagħad tibda tibgħat hawnhekk
fl-istess ħin mingħajr tagħmel massa jaqblu
u mbagħad dritt massiva,
dan l-approċċ huwa ġeneralment aktar effiċjenti.
Allura dak it-tip ta 'għalf qodma anki jekk kien ġdid nhar it-Tnejn,
din hija kollha li tieħu biex timplimenta chat server
ma js glandoli u aktar speċifikament socket dot IO.
Allura kif taħdem din, let me jġorrhom up a bit,
hekk io huwa biss varjabbli li jirreferi
lill-modulu aħna meħtieġa qabel,
dot socket huwa biss proprjetà ġewwa ta 'dan
li tagħti me socket funzjonalità relatati
fuq huwa metodu komuni li tirrigwarda liema kunċett ġenerali?
Avveniment bqija aka jisimgħu xi libreriji Dan ifisser biss
Fuq dan l-avveniment li hija imsejħa konnessjoni
u issa inti taf dan biss minn tħares lejn id-dokumentazzjoni,
min kiteb l-librerija definit avveniment imsejjaħ
konnessjoni li ma dak tiegħek ser jaħseb
meta Alice jew Bob jgħaqqad.
Jimxi 'l quddiem u sejħa dan funzjoni anonima jieħdu tgħaddi
fil argument wieħed-klijent li hija apparentement xi tip
ta 'oġġett li jirrappreżenta Konnessjoni Alice
jew konnessjoni Bob jew Charlie jew xi ħadd ieħor
u issa nagħmlu dan li ġej.
We tell-klijent wara hu jew hi huwa konness
li tisma speċifikament
għal messaġġ li kompletament arbitrarju imsejjaħ messaġġ
klijent kolon.
Din hija xi ħaġa li Tim u I ħarāet bil, jista 'jkun foo
jew bar, huwa biss ftit string unika li għandna bżonn
li jiddeċiedu kif l-iżviluppaturi.
Kull meta Alice jew Bob jisma
il-każ din anonima funzjoni għandu jissejjaħ
u d-data, il- kontenut ta 'Alice
jew messaġġ Bob għandha tkun mgħoddija fis dan handler avveniment
u issa dak jekk il- client tagħmel tajjeb inti tista tip
ta taqra dan pjuttost intuwittivament il-klijent għandu jxandar,
inkella magħruf bħala jitfa ' messaġġ imsejjaħ metodu server
b'hekk li tfisser dan il-messaġġ huwa li ġejjin mill-server ma
mill-browser u dak kieku dak il-messaġġ tkun,
huwa apparentement l-payload mill- x'ikun ġew mill-klijenti
u aħna qed biss ser arbitrarju sejħa hija messaġġ.
Allura ħafna ta 'dan huwa arbitrarju
permezz tismija raġonevoli konvenzjonijiet, Tim u Wasalt
up ma ', l-aktar Tim u allura aħna sempliċiment qed joħolqu finalment
chat server li ma dak, meta Alice jibgħat messaġġ
u hits tidħol liema avveniment apparentament gets sparati,
biss biex terġa.
Tipi Alice a messaġġ, hits jidħlu, klijent messaġġ huwa sparati,
dan il-kodiċi jisma dan u issa l-server xandiriet liema,
x'inhu l-riżultat aħħari ta 'dan verament?
Alice jibgħat il-messaġġ issa l-server rebroadcasts dan
effettiv għal kulħadd ħlief għall Alice, għaliex kulħadd ħlief
għall Alice jekk inti biss tfittex
fil-klijent dokumentazzjoni dot dot xandira jammettu,
litteralment ma dan, xandiriet l-messaġġ
għal kulħadd ħlief il- klijent li bagħtitlek
li aktar messaġġ riċenti.
Allura dan huwa għaliex inti biss jarawha darba fuq kull naħa,
ma tarax kemm Alice u Bob jkollna messaġġ Alice.
Allura dak dan, dan huwa aġent stabulazzjoni
jekk inti se thats biss tieħu fil-messaġġi
u rebroadcasting minnhom barra
u huwa notevolment skalabbli I tfisser anki
ma 'super sempliċi server u ftit linji
tal-kodiċi inti tista 'ċertament jimmaniġġaw mijiet jekk mhux eluf
ta 'messaġġi sempliċi konkorrenti tmur quddiem u lura bħal dan
u biss jimmaġina l-kumplessità issa dan isir fil PHD
jew Larevel jew SQL tiegħi u kemm kodiċi inti jkollha
jiktbu sabiex fil-fatt jintlaħaq dak.
Issa fil-ġustizzja f'dan mhuwiex dritt persistenti
jekk il-server jinżel aħna jitilfu l-istorja kollha
hekk mhuwiex pjuttost traduzzjoni perfett imma hija
li dritta 'l quddiem.
Ejja nħarsu lejn l-iskrittura Java Kodiċi aħna skipped fuq qabel,
dan huwa Alice u Klijent Bob,
il-paġna web li qed jużaw issa ejja nħarsu up hawn għal mument.
Hemm kodiċi ftit aktar
iżda huwa pretty ħafna biss jQuery hawn hekk avviż
li fil-paġna tal-web li I jinġibed
up mument ilu aħna jinkludu l-librerija jQuery,
l-sokit io librerija u bħala twarrib avviż-differenza
hawn, mmejla slash fi il-bidu ta 'mogħdija
bħal dan ifisser eżattament dak,
fejn huwa jQuery dot JS fuq liema server?
Yeah.
>> [Taqsima inaudible]
>> Huwa fuq l-internet yeah litteralment imsejħa kodiċi dot jQuery
dot com hekk għaliex mmejla, mmejla, għaliex wieħed mhux biss slash,
fejn huwa l-http jew tal-kolon, dak li jfisser dan b'mod ġenerali
jekk inti mmejla slash fuq il-bidu ta 'l-url?
Huwa attwalment utli.
Okay hekk x'hemm ovvjament http nieqsa issa jekk aħna raġuni
permezz ta 'dan loġikament, tipikament inti m'għandekx bżonn
nsemmux ismijiet servers dritt
simili jekk biss użu slash jQuery dot JS dak li huwa preżunt
mill-browser?
Li l-fajl huwa fuq l-istess server sabiex tkompli dik it-tip
tal-loġika jekk inti ma jgħidux huwa dak protokoll x'inhi l-
browser tassumi, l-istess protokoll sabiex jekk inti stajt qatt żar websajts
li jtik żball flimkien il-linji ta 'kontenut siguri
f'din il-paġna huwa minħabba xi ħadd ikun iebes kodifikati xi http
slash kolon slash URL għal immaġni jew fajl b'kitba Java
jew CSS fajl, xi ħaġa bħal dik fil-kodiċi sors tal-paġna
iżda l-paġna nnifisha fil- browsers URL huwa http s.
Allura dan huwa biss il- mod ftit fancy
ta 'tgħid I ma nafx x'inhi l-protokoll
li dawn l-utenti aħħarin ser tuża
iżda biss tagħmel ċert li logħbiet sabiex chrome
u browsers oħra ma Yell fil-utent.
Il-qabda biss huma l- nies jQuery kienet iffissat aħjar
https fuq server tagħhom.
Allura huma attwalment elenkar fuq 443.
Kull dritt sadanittant dan wieħed hawn dan huwa tip
ta 'slash qarrieqa io socket jissuġġerixxi
li hemm direttorju imsejjaħ io socket dot fuq server tiegħi
iżda hemm mhux jekk aħna poke
madwar hemm il- direttorju modulu node tal
iżda m'hemm xejn pubbliku dwar dan,
meta aħna konfigurati io sokit li tisma 'fuq l-istess portijiet,
1337 essenzjalment li librerija li xi ħadd ieħor kiteb huwa għaddej
għal tip ta 'daħħal xi kodiċi fl-ambjent js node taċ
u biss jisimgħu għal din it-triq.
Li librerija għandha biss konfigurati rotta għal dan,
mhuwiex direttorju reali.
Ikun fil- post standard.
Okay hekk issa l-interessanti parti,
hekk meta d-dokument hija lesta kif indikat
minn din jQuery jibni, ewwel jien ser jimxi 'l quddiem
u konnessjoni ma 'sokit,
dak socket biss sa ... jżommha sempliċi jien ser jgħaqqdu
mmejla, li fejn l-utent huwa,
Stajt tinżamm l-eżempju sempliċi aħna qed biss jmorru għall-konnessjoni
għall-istess URL eżatt li l- utent ikun żar allura jien ser
biex jagħmlu dan li ġej, jien ser tell browser Alice jew Bob
li tisma għall- Messaġġ mill-server.
Għal darb'oħra dan seta 'kien foo
jew bar kwalunkwe ħin li inti tisma 'messaġġ
mill-li data server sejħa u mbagħad tagħmel dan il-kodiċi jQuery
li jien guessing aktar jekk mhux kulħadd huwa familjari
ma 'dawn il-jiem imma essenzjalment pin li lista ta 'punt
l-UL eżistenti li kienet tissejjaħ messaġġi
li litteralment tgħid ikun x'ikun l-payload hija
tal-messaġġ chat segwit minn ħajfin, segwit minn jirċievi,
segwit minn spazju u mbagħad żmien jaġġornaw u hu għalhekk li
li jkun ċar jekk immorru lura
għal dan ikollok dawn addizzjonali balal ġdid u għal darb'oħra
u għal darb'oħra bil-ħinijiet data.
Sadanittant jekk inħarsu stabbiliti hawn aħna biss għandhom
biex jimmaniġġaw is-sottomissjoni forma b'tali mod li kienet ir-riċeviment
ta 'messaġġ instant, hawn jibgħat u dan huwa tip
ta 'mhux relatati mal JS node, jisimgħu għall-formoli jissottomettu avveniment.
Meta dan jiġri evitata kontumaċja, dan ifisser biss ma tissottomettih
għall-server fil-soltu mod, rikarigu-paġna kollha,
rridu nagħmlu dan kollu permezz ajax.
Hawn biss xi kodiċi jQuery
li fil-fatt tikseb l-input li tip huwa messaġġ,
li ismu huwa messaġġ jimxi 'l quddiem
u jiksbu huwa valur allura inti tmur quddiem
u jekk inti fil-fatt ikollhom messaġġ, jekk Alice u Bob
jew Bob attwalment tipi xi xejn 0 | Numru keystrokes jarmu
fuq il-socket messaġġ imsejjaħ klijent messaġġ ma 'dak tagħbija
u mbagħad stabbiliti hawn dan huwa dak li jagħmilha ħodor kuntrarju
għal aħmar, aħna sempliċiment output naħa appliance [inaudible].
Allura dak it iżda kollha dan huwa biss il-stabbilit,
l-għalf ġdid reali nixtieq jargumentaw huwa biss dawn it-tliet
jew ħames linji ta 'kodiċi hawn u li tip ta 'ideat fil-power
ta js glandoli u magħha din il-librerija partikulari.
Mela ejja tagħti quick tħares lejn dot express JS,
hekk dak li jien ser jippruvaw jagħmlu fil-koppja li jifdal
ta 'minuti hawnhekk huwa stabbilit ftit idea, ftit tekniki
li mbagħad tieħu koppja break minuta, Tim se twaqqaf
u allura aħna ser adsa aktar profonda
għal aktar interessanti jesprimu applikazzjoni u wkoll
għall librerija, il-librerija il Tim attwalment kiteb
għall-komunità sors miftuħ
li jagħtina dawl elokwenti funzjonalità mal SQL tiegħi
u tranżazzjonijiet u oħra bħal dawn karatteristiċi u hu ser ukoll adsa
fi ftit aktar profonda għall- lingwa Java iskrittura nnifisha,
kif għan jew non-klassi mudell xogħlijiet inkella tkun taf
bħala mudell prototip, ftit aktar fuq dak li ġejjin.
Mela ejja tagħti ħarsa lejn żewġ aħħar applikazzjonijiet hawn, server ħamsa
u server 6 li huma kollha tip ta simili fl-ispirtu,
dawn mhumiex chat servers iżda huma jużaw express.
Mela ejja tagħti ħarsa lejn dak li dan fil-fatt ma,
Jien ser jimxi 'l quddiem u miftuħa ... Jien ser imexxu dan app
ma 'JS app node, jien ser mur lura għall-browser tiegħi u rikarigu
u dan huwa apparentement dan kollu server qed tagħmel,
huwa server super sempliċi li l-apparentement tfittxija
magna hekk jekk I tip fil foo u jissottomettu, ebda riżultati tat-tiftix
għall foo, I ma jiksbu madwar implimentazzjoni tal-sofistikati
aħħar lura, kollox huwa għaddej
tagħmel huwa eku x'ikun inti tip l-ebda riżultati għall foo,
ebda riżultati għall bar Allura kif nistgħu nagħmlu dan
għaliex hemm biċċiet koppja, wieħed,
hemm b'mod ċar xi inputs jiġu pprovduti
l-server ma Larevel ta 'kors, iżda js node issa
għalhekk għandna bżonn li b'xi mod tikseb fuq dak il-parametru Q,
aħna qed tagħmel ċar xi tip ta 'dawl hawn,
aħna qed tirrendi ħsieb hekk forsi hemm opportunità
għal mudelli jew varjabbli interprelation [fonetiku]
hekk ejja tagħti ħarsa fuq dan li ġej.
Fil js app għal dan partikulari server din hija kollha għandna.
Wieħed aħna jeħtieġu jesprimu innifsu, tnejn-modulu triq
li biss ma xi Jittieħed utli
bħal tgħaqqad kordi flimkien u oħrajn għalija,
I jisimgħu fuq il-port 1337 u issa dan huwa ġdid hekk jirriżulta
li espressa bħal Larevel jappoġġja ins plug differenti
u teknoloġiji u affarijiet oħra u wieħed
tat-teknoloġiji li inti tista 'plagg fil hija magna ħsieb
li ifisser biss dak templating magna ma trid tuża,
Larevel kieku stess ħaġa imma int tista 'plagg
fl-affarijiet differenti, differenti oqfsa ħawħ P jkollhom
modi differenti ta 'templating, Ejs huwa biss komuni
u magna pretty sempliċi li biss ejja inti tagħmel affarijiet
bħall-braces kaboċċi li kellek fil-sintassi Larevels
għal tissostitwixxi varjabbli,
huwa ftit differenti sintattikament hija kollha.
Allura issa hemm dan ħaġa imsejħa ware nofs sabiex tkun taf tara
fil stess timijiet tiegħek node proġett ware tan-nofs huwa biss tip ta 'kodiċi
jew libreriji li tinjetta
fis-risposta [inaudible] ċiklu tal-ħajja ta 'applikazzjoni,
fi kliem ieħor dawn iż-żewġ linji huma javżak express
tagħmel xi xogħol żejjed bejn il-ħin jiġrilha talba
u bejn il-ħin li jibgħat li t-talba għal rotta tiegħek stess,
kodiċi tiegħek li inti stajt bil-miktub.
Allura partikolarment il-linja hawn jużaw dot express statika u kollha
ta 'din il-kumplessità dan biss ifisser li jekk inti tara talba
li taqa 'fl għal fajl statika bħal foo dot JIF jew foo dot css
jew foo dot JS hekk mhux rotta dinamiku iġġenerat,
imorru quddiem u jassumi jgħix fil-subdirectory pubbliku,
li kollox li qed jagħmel.
Huwa tip ta 'bħal mapping fi Larevel, kollox biex web tiegħek
jew direttorju pubbliku tiegħek pjuttost fil Larevel.
Din il-linja li jmiss huwa biss qal I jridu jużaw rotot,
I jridu jużaw affarijiet bħal app dot jiksbu
li rajna mument ilu u Ser naraw fi ftit tieni issa.
Dot Allura app tikseb mezzi jisimgħu għal din ir-rotta,
mmejla meta inti ġġibu sejħa dan funzjoni anonima li jieħu
f'talba u rispons u issa biss
bħal Larevel għandek mod ta tirrendi template,
rispons dot tirrendi, nikkwota indiċi unquote,
tirrendi hija template imsejħa indiċi,
thats hekk ejja jissospendu li ħajt għal ftit mument ħarsa
fil-kontenut ta ' l-direttorju fehmiet
u avviż dan ukoll huwa super sempliċi għal issa,
hemm Ejs dot indiċi u tfittxija Ejs dot,
I ovvjament trid l-ewwel
għaliex dan huwa l-waħda I biss għajjien biex jirrendu u Ser naraw
fil Ejs dot indiċi fehmiet aktar fil-fatt kompletament html
fil-mument, hemm fil-fatt ebda templating għaddejjin.
So I teknikament ma anki ħtieġa li hija sejħa Ejs,
I m'għandhomx bżonn li l-funzjonalità imma I żammha uniformi,
b'tali mod li huwa, dan huwa dak tagħti me dik il-forma sempliċi super.
Allura hemm rotta waħda biss, jekk inħarsu stabbiliti hawn stajt qal
li dan huwa dak mankijiet jiksbu mmejla tfittxija sabiex il sort attwali
ta 'Google bħall handler għall- formola ta 'sottomissjoni, meta ikollok
f'din it-triq sejħa dan funzjoni anonima
u jirrendi l-template imsejħa tfittxija
u dak li huwa t-tieni argument ifisser preżumibbilment.
Jidher qisu oġġett JSON ta ' xorta jew Java script oġġett.
X'inhu l-irwol ta 'dak tieni argument preżumibbilment?
>> [Taqsima inaudible]
>> Il-mistoqsija attwali li l- utent ittajpjat fil apparentement jgħix
fit-talba dot mistoqsija, query jirreferu għal kollox
wara li l-kwistjoni mark dot q li huwa l-isem arbitrarja
li I tatha biss bħal Google
u sadanittant kolon q hija biss qal tgħaddi fil-mudell,
Ejs tfittxija dot, a ewlieni ta 'q u valur
ta irrispettivament min q attwali valur kien.
B'tali mod li tħalli wieħed biss fajl ta 'interess għall-opinjonijiet,
Ejs tfittxija dot I tinżamm dan super sempliċi wisq,
Huwa aktar biss html ħlief għal linja waħda pjuttost notevoli
li huwa dan sintassi hawn li qisu mazz
tal templating differenti magni dan ifisser biss plug
fil-valur ta 'q u jagħmilha kuraġġużi.
Hekk hemm ebda tfittxija attwali funzjonalità iżda ma tip
tal jissuġġerixxu kif inti istruttura ta 'iskeletru
ta 'applikazzjoni bħal dik.
Sadanittant ... fil-fatt I jistgħu juru ħaġa waħda oħra,
avviż li I do jkollhom xi html up here għall-fajls CSS
u fajls Java iskrittura, hemm xejn f'dawk il-fajls
fil-mument imma avviż li hemm f'direttorju pubbliku
kif għidt aktar kmieni għal fajls statiċi hekk jekk immur
fil hemmhekk hemm direttorju css tiegħi,
jekk immur fil hemm theres stili dot css
u hemm l-ebda kontenut hemmhekk
iżda li kif inti għandhom fajls pubbliċi aċċessibbli.
Kull dritt ejja tagħti ħarsa fil varjant ieħor hawn
u allura aħna ser jintroduċu idea waħda u break.
Allura dan huwa server 6 l-aħħar, hekk dan huwa kważi identiku ħlief
għall-qiegħ żewġ linji li teżamina bħal dan.
Allura fil-fatt hemm tielet linja li l differenti
imma stajt moħbija ... so let me back up ftit hekk ma xi ħadd jridu
tipproponi x'inhu għaddej hawn f'termini laymans fuq
jew termini tekniċi x'hemm differenti dwar din il-verżjoni
fir-rigward ta 'dawk linji fil-lymph top.
What jiena preżumibbilment jsir hawn u għaliex?
Yeah, Sharon.
>> [Taqsima inaudible]
>> Yeah jidher qisu stajt indiċi mċaqalqa u tfittxija
hekk separat dirett jew xi ħaġa, Stajt f'fatturi lilhom out
u li hekk li ħafna simili fil Larevel inti tista 'tpoġġi kollha
tal-loġika kontrollur tiegħek ġewwa ta 'rotot dot PHP
b'funzjonijiet anonimi ġdid u għal darb'oħra u għal darb'oħra
iżda dan il-fajl tal-kors jistgħu jiksbu pretty enormi
hekk rotot dot PHP dak li ħafna
minnkom guys kienu jagħmlu hija inti stajt speċifikat l-isem
ta 'klassi kontrollur jew anke l-isem ta 'metodu
li għandhom jingħataw imsejħa
hekk l-istess idea hawn ukoll għalkemm il-sintassi hija ftit
differenti sabiex up here avviż
li jien apparentement implimentati js node tiegħi stess
modulu u modulu huwa biss Fajl java b'kitba li taderixxi
li essenzjalment konvenzjoni wieħed li aħna ser tara fil ftit mument.
Allura wieħed jassumi li kollha tiegħi funzjonalità għal indiċi
u għat-tiftix jkollhom apparentement tqiegħdet f'din direttorju
u issa jien ssejjaħ dak kollu modulu jew pakkett jew il-librerija,
xi trid biex jaħsbu li bħala,
bħala rotot varjabbli imsejħa rotot.
Allura apparentement fil hemm rotot dot indiċi huwa metodu jissejjaħ
indiċi u apparentement hemm metodu ieħor jissejjaħ tfittxija
f'dan il-moduli rotot jew il-librerija
u jien biss rotta li biss hekk li jien ma jitqiegħdu kollha
tal-kodiċi anonima tiegħi ġewwa tal-fajl app tiegħi.
Mela ejja jmorru fil rotot avviż hemm js dot biss indiċi
u jekk I ħarsa fil hawn dan huwa il-konvenzjoni I fisser qabel
għalhekk dan huwa pretty arbitrarja imma hija l-konvenzjoni node.
Kwalunkwe ħin li inti jimplimentaw stess node JS librerija tiegħek,
aka modulu inti essenzjalment tista ' jikteb xi kodiċi iskrittura Java inti
tixtieq f'dan il-fajl, se jiġu ramel nadif ħafna boxed
sabiex kwalunkwe varjabbli inti jagħżlu mhux se jikkonfliġġu
ma 'librerija ħaddieħor, Varjabbli jew metodi jew xejn
bħal dik, iżda xejn inti tixtieq li jesponu
fid-dinja esterna ala a Metodu pubbliku Java script
jew PHP jew lingwi oħra ikollok biex plop ġewwa
ta 'oġġett globali li l- awtur ta 'node jissejħux esportazzjoni.
Allura billi tagħmel esportazzjoni dot indiċi I am jesponu lill-utenti
dan il-modulu metodu msejjaħ indiċi li l-mapep li din il-funzjoni
dan huwa anonimu fuq il-lemin
imma jien effettivament jtuha isem fuq in-naħa tax-xellug
u l-esportazzjoni lill-dinja
sabiex inti tista 'sejħa dot indiċi jew dot search.
Allura biex tkun ċara jekk I kellu wkoll xi ħaġa bħal foo funzjoni
fil hawn li għamilt xi ħaġa
dik il-funzjoni kieku assolutament tkun operattiva,
dan jista 'jissejjaħ fi dan il-fajl imma ebda wieħed
fid-dinja ta 'barra kiesaħ qatt sejħa foo
għaliex mhuwiex ġew esportati permezz ta 'din dot notazzjoni.
Allura dak kollu li għaddej,
kollox huwa nicely isem spazjati għalik.
Allura l-aħħar tirriżulta jekk I do node ta 'app u rikarigu-paġna hija
li jekk I issa tfittxija
għall-bar ... funzjonalment dawn apps huma l-istess
imma huwa biss tip ta 'pass lejn implimentazzjoni aktar nodfa,
ċertament meta tibda kodiċi miktub aktar u aktar
u li kollox dawn huma.
Ovvjament mhux partikolarment sofistikati jew kumplessi
iżda essenzjalment punt tat-tluq
għal dak li se jkun tiegħek ewwel node app JS.
Dak li aħna ser nagħmlu probabbli aktar tard din il-ġimgħa jew dan il-weekend
kif inti irfinar up fuq il- applikazzjonijiet PHP aħna ser isegwu
bi pretty sempliċi applikazzjoni għat-tim li adsa
fis simili fl-ispirtu li l-eżerċizzju warm up għall PHP
li bbażati fuq l- Stħarriġ semestru nofs,
folks ma ssib utli għaddejjin mill-eżerċizzju
tagħmel xi ħaġa pjuttost sempliċi
iżda pjuttost ggwidati qabel ma inti tabilħaqq jitqabdu xi ħaġa aktar
fuq tiegħek hekk aħna se segwitu ma 'dik
u essenzjalment se jkun minħabba ġimgħa u nofs
minn issa jikkoinċidu ftit ma PHP deliberatament.
Kwalunkwe mistoqsijiet imbagħad fuq jesprimi, fuq io sokit
jew konfużjoni li fadal mit-Tnejn forsi.
Kull dritt hekk nisperaw waħda l-jieħu ftit modi s'issa hija
li hemm għal xi wħud minn dawn affarijiet ċertament ħafna inqas
overhead milli inti tista ' ġew użati biex.
So let me jintroduċu aħħar idea waħda,
hekk komuni ħafna paradigma programing
fl Java iskrittura li l- attwalment preżenti fl jQuery
fil-verżjonijiet riċenti hekk jista 'jkollhom attwalment tidher din it-teknika
qabel imma hija wkoll pjuttost komuni fil-JS dinja node,
huwa komuni fl Tim stess librerija Librerija
hekk aħna ser tirrevedi dan eżempju aktar konkreta
fil-mument huwa soluzzjoni għall-kodiċi bħal dan,
dan huwa rappreżentattiv tal-kodiċi rajna nhar it-Tnejn, sabiex tinqara fajl
f'dan il-kuntest mhuwiex reali metodu huwa simili fl-ispirtu
li fs dot fajl jaqra iżda jippreżumu li dan huwa biss ftit magħmula
up metodu li ma xi ħaġa simili ħafna.
Allura aħna dam fis xi ftit kwistjonijiet nhar it-Tnejn b'mod ġenerali
iva, liema huwa tip ta ... għaliex dan huwa inklinazzjoni tiżloq,
din is-sejħa lura paradigma ta 'programing Java script
u minn sejħa lura paradigma I jfissirx biss din it-teknika
fejn inti ma jirritornawx Valuri immedjatament
minħabba sitwazzjoni tista jimblokka l-server
milli tagħmel xi ħaġa oħra li l- utli, inti minflok sejħa lura
bħall-buzzers fil Ħawwad Shack meta int lest
jgħaddu lura rispons bħala argument.
Dan huwa jiżolqux slope
fejn malajr ħafna isir annoying għaliex?
Yeah.
>> [Taqsima inaudible]
>> Yeah, minimament isir dritt tinqarax tip ta '
jekk għandek dawn kollha call backs u jekk int jeħel
stil tajjeb huwa jkollna pretty massiv indentata
matul iż-żmien u każ I punt dan eżempju, jekk inti tip ta 'skim
permezz ta 'dan huwa sempliċiment maħsuba biex jiftaħ fajl JSON u jistampaw,
bħal dan huwa dan u għadhom aħna għandhom xi 8 jew 10 linji hawn
li huma diġà sort ta nastily inċiża,
konna ltqajna qabda jipprova li huwa
jekk int familjari huwa teknika tqandil żball
li jippermetti li inti tipprova xi ħaġa
u jekk jonqos allura inti qabda nisperaw
mingħajr programm kollu tiegħek li jtemm iżda hemm
tant kumplessità bħalek tip tal għandek biex jaħsbu dan permezz
u Alla jipprojbixxu nagħmlu koppja ta ' metodu mhux sinkroniku ieħor jitlob,
il-ħaġa diġà se jkun hawn,
inti tista 'taħseb li dan huwa tip ta 'esthetic iblah imma dan
għaliex is-sejħa lura paradigma hija tant komuni mill-inqas
fil-kodiċi node nattiva dan malajr ħafna jsiru tedious,
diffiċli biex debug, l-indentazzjoni jibda kwistjoni sabiex inti tista sort
affarijiet chase isfel, huwa biss mhux mod kuntenti ħafna
ta 'programing.
Allura dak folks għamlu
fil-kuntest varji node fost minnhom huwa tipprova tissimplifika dan,
os pereżempju wegħdiet huwa mod ieħor ta 'ħsieb
dwar kitba kodiċi mhux sinkroniku li viżwalment dawriet xi ħaġa
bħall-verżjoni 1 fi din il-verżjoni 2.
I pretensjoni u dan huwa ġdid biss tip ta mħallta
bejn kodiċi attwali u psewdo kodiċi, dan huwa rappreżentattiv
ta 'kif inti se jimplimenta mill-ġdid l-istess ħaġa eżatt,
jiftaħ fajl JSON, parse u jistampaw
out tuża xi ħaġa imsejħa wegħdiet
u l-dettall sintattika muftieħ huwa
li hemm chaining għaddejjin hawn.
Avviż li l-uniku punt u virgola
fil-proċess sħiħ ... fil-fatt ukoll ejja ... Ma rridx li tqarraq.
Dan mhux strettament neċessarju imma ejja tkun konsistenti,
avviż li l-virgola li tirreferi għall-ftuħ
din id-dikjarazzjoni sħiħa huwa it-triq kollha hawn.
So I filwaqt li stajt formattjati dan ... tip ta 'ħarsa
bħal tliet dikjarazzjonijiet, tlieta dikjarazzjonijiet li inti tista 'tara
fl Java jew lingwi oħra li għandhom jippruvaw u l-qabda
u t-tqandil eċċezzjoni b'mod aktar ġenerali.
Avviż li I biss katina il-valur tar-ritorn ta 'kull
ta 'dawn il-metodi flimkien.
Allura x'inhu għaddej, jaqraw fajl jekk dan huwa metodu li teżisti,
apparentement jipprova biex jaqraw dan il-fajl,
dot allura iva allura huwa ferm isem komuni mogħti fid-dinja
ta 'wegħdiet għall- metodu li għandu jesegwixxi
jekk il-ħaġa qabel irnexxielu.
Allura huwa tip ta bħall-suċċess handler, hekk allura JSON dot parse,
ukoll JSON dot parse huwa biss metodu
fil-librerija JSON globali u apparentement osservanti
li f'dan il-każ il- mudell wegħda
hekk aħna ngħidu li nistgħu biss jassumi li call dan Guy
u jekk hu jirnexxilu mbagħad sejħa dan Guy u mbagħad
jekk dan huwa fil-fatt tesegwixxi sempliċiment console log id-data
in kwistjoni.
Għalhekk, fejn huwa l-iżball tqandil, avviż stajt sort
ta addoċċ ħafna intensifikati off dan erf
u biss sejjaħ dan metodu u mbagħad dan il-metodu
mingħajr qatt iċċekkjar għall-problemi.
Ukoll fejn huma dawk problema preżumibbilment mmaniġġjati ... f'dawn
dikjarazzjonijiet cache tant differenti libreriji użu differenti
konvenzjonijiet iżda fl- F'dan il-każ allura huwa tip
tal-handler suċċess, cache huwa tip ta 'l-handler żball
u għaliex konna mhux miksur din il-katina aħna biss iżommu jużaw
dot notazzjoni li jgħaqqad flimkien il-metodu oriġinali invokazzjoni
tal-fajl jinqraw u l-funzjoni invokazzjoni xi żbalji sort
ta 'bubble mod tagħhom permezz tal-katina
sakemm dawn qed attwalment mqandla li huwa mod aktar nadifa milli jippruvaw
biex jittrattaw dan kull pass kkritikat tal-mod
sabiex kodiċi tiegħek ħafna malajr isir data unreal.
F'dan il-każ aħna qed fejn sostniet li nippruvaw
biex jaqbad dak li jissejjaħ żball sintassi huwa essenzjalment
subklassi ta 'aktar ġeneriku żball u jekk dik il-pretensjoni jiġri
li huwa JSON invalidu xorta oħra jekk huwa żball aktar ġeneriku
li aħna ma kinux jistennew biss aktar ġenerali jgħidu ma tistax
aqra fajl.
Issa dan huwa biss maħsub li jkunu kodiċi rappreżentattiv
imma jekk inti ħadthom programmati prima Java script jew fl Java
jew lingwi oħra dan kodiċi ta 'proċedura essenzjalment,
din hija tradizzjoni aktar jippruvaw istqarrija tal-qabda
u dak l-esthetic u l-funzjonalità li l-wegħdiet
jew li jippruvaw li jtik fejn inti tista 'taħseb
bħala biss bil-miktub jipprova u mbagħad qabda u mbagħad jaqbdu ma jkollhomx
ninkwetaw f'kull punt wieħed possibbli
meta żball jista jimmaniġġjaw ... jiġri,
inti tista jimmaniġġjaw dan kollu fil- jispiċċa skond kif meħtieġ minn blokka żgħira
tal-kodiċi, u inti tista 'anki tiddistingwi minn fost żbalji
kif inti tista 'f'dan il-każ hawnhekk.
Allura n-nomenklatura li tkun taf tara fil-letteratura forsi
kif Tim jippreżenta xi ta 'dan il-għalf huwa wisq
li idealment tixtieq wegħdiet biex isolvu
u solvuti l-mezz wegħda li finalment jirritorna biex ngħidu hekk
iżda mhux b'mod tradizzjonali ta 'valur, u għalhekk kemm jirnexxilu
għall jonqos essenzjalment.
Kull dritt xi mistoqsijiet imbagħad, mhuwiex maħsub li jkun biżżejjed
għall-espożizzjoni għall-wegħdiet iżda sempliċiment mudell mentali
għall-kodiċi għalik se tibda tara.