>> Në rregull kështu që ne jemi të kthyer, disa qëllimeve për sot,
ne do të marr kudo ne e kemi lënë jashtë për herë të fundit,
kujtojnë se ne ishim duke e bërë këtë seri
i serverit të lidhura aplikacioneve, super e thjeshtë por duke përdorur nyje JS
dhe pastaj edhe kohët e fundit duke përdorur kontakt shprehin AS
dhe atë që ishte shprehur JS analog i në botë PHP.
Pra, të shprehur është më i afërt ...,
kështu shprehur është në thelb Korniza MBC kjo është shumë e
popullor në botë js nyjeve,
Raft librash të cilat ne do të shohim sot via Tim është një analog
shprehës i cili është një ORM në një Mapper relacionit objekt
që në fakt e bën më të lehtë për të shmangur të nivelit të ulët SQL kodin
dhe në të vërtetë shprehin marrëdhëniet në mesin e objekteve të ndryshme.
Pra, një nga coolest gjëra Sinqerisht
rreth nyje js është vetëm se si lehtë ajo jep vetë
për të bërë aplikacione në kohë reale, gjëra të tilla si chat servera
ose mesazhimit servers, çdo gjë që ju djema tani përdorin
si Google ... G-chat ose Google vendtakim
ose përditësime statusin Facebook apo edhe Twitter nëse ju jeni
në ueb faqen e tyre çdo gjë është lloj kohë reale
apo ju jep iluzion i kohë reale
dhe kjo është në fakt një dhimbje në qafë të bëjë me diçka
si PHP dhe SQL e mia drejtë çfarë bëri propozojmë
të hënën do të jetë mjeti
me të cilat ju mund të zbatojë iluzionin e sjelljes në kohë reale
me një server chat në PHP, ajo do të ju duhet të bëni?
Alice dërgon një mesazh, godet të hyjë ku bën atë të shkojnë?
Po.
>> [Seksion padëgjueshëm]
>> Into një bazë të të dhënave dhe më pas çfarë do shfletuesi Bob kanë
për të bërë që në fakt të parë çfarë Alice ka thënë, vërtet?
>> [Seksion padëgjueshëm]
Mbani >> votimin baza e të dhënave, e drejtë, kështu që një kërkesë ajax ka
të zjarrit çdo sekondë, çdo pak sekonda ose biseduam shkurtimisht
por nuk shikojmë një shembull të diçka që quhet votimit të gjatë,
dikush kujtohet se si
mekanizëm që ... më një nivel të lartë punon?
>> [Seksion padëgjueshëm]
>> Saktësisht, po kështu një shfletues ende bën një kërkesë ajax
në një server, në një foo dot php por foo dot php ashtu duket
për të ul receptorin e telefonit, ajo në thelb ulet në një lak, ndërsa për sa më shumë
si 30 sekonda në mënyrë tipike dhe vetëm një herë fotografi dot php foo
realizon oh ka një rresht të ri
në bazën e të dhënave e bën ai në fakt përgjigjet
me një përgjigje http.
Pra, ju mendoni se kjo mund përndryshe rri server
dhe kjo e bën në një farë mase
por kjo do të thotë se ka shumë më pak lart
sepse ju nuk keni nevojë për një TCP ri lidhje, një lidhje e re htp
që në fakt të kërkojë të dhënat nga serveri.
Por nyja js vjen me një shumë të Biblioteka popullore të quajtur fole
dot io të cilat ju mund të kurrë nuk e përdorur është ndërtuar në majë
e një teknologji të quajtur web fole e cila është e pranishme
në shfletuesit më moderne dhe çfarë fole io nuk është e lejuar ju
për të krijuar thelb një lidhje të vazhdueshme
në mes të shfletuesit dhe server kjo është lart shumë e ulët
kështu që ju nuk e bëni domosdoshmërisht kanë të njëjtat çështje bigorit
që ju mund të qoftë se ju jeni vazhdimisht goditur server
në botën e PHP dhe SQL im dhe si.
Edhe për shfletues të vjetër
që nuk e mbështesin web fole kjo fole bibliotekë dot io mund
të bien përsëri në flashes Zbatimi i bazat
dhe bazat është një rrjet gjë nga CS143 për shembull.
Ose ajo mund edhe të bien përsëri në kohë votimit në vetvete në mënyrë që ata të zbatojnë
që të njëjtën lloj pune
rreth e rrotull për të vërtetë ruajtjen iluzionin e atë lidhje.
Pra fole [padëgjueshme] io dhe kjo është në formën
i një biblioteke java script, në thelb në qoftë se ju përdorni atë
në formën e një JS nyjen aplikim që ju jo vetëm të instaloni
ajo si një paketë duke përdorur diçka si MKP cilën kemi përdorur të hënën
dhe ose ju të përfshijë një hequr tag në në dosjen tuaj html
që thotë se të përdorni klienti bibliotekë anë.
Pra, ka dy gjysma të ajo dhe çfarë ne kemi bërë këtu
në përsëritje e katërt i sekuencës së hënës
e shembujve është në vijim.
Pra, kjo strukturë skedë është kujton një grup shumë të përbashkët
për JS shprehura dhe fatmirësisht kjo është mënyra më e thjeshtë
se lervo [fonetik] u, kujtojnë kur keni vendosur
up lervo ju mori një e keqe e madhe hale e një tërësi shumë të dosjeve,
directories shitësi, lib dhe shumë të peshë e rëndë në krahasim me këtë.
Tani në drejtësi kemi zhveshur larg sende që është shumë shumë një
çmenduri por të gjithë Sende lëng është i vërtetë
në module të nyjeve.
Vetëm të ju jap një shije nëse shikojmë
në module të nyjeve ka dy modulet ose bibliotekat
që unë e kam shkarkuar, kjo do të ishte e barabartë
i directory shitësi, e quhet shprehur që është
si larevel por në nyje
dhe fole io e përmenda vetëm.
Pra, ata të ekzistojnë në mënyrë që ne mund të nuk e mëposhtme në qoftë se unë të hapur
deri le të thonë se indeksi dot html, le sy e parë në html,
kjo do të kompozoj ky organ, super im,
chat server super e thjeshtë.
Pra, ka me sa duket një ul me një ide unike e mesazheve
dhe kjo është ajo ku një li në një kohë,
të gjitha mesazhet e çastit janë do të shfaqet në mes Alice
dhe Bob dhe pastaj nuk ka një formular të thjeshtë me një fushë teksti
dhe një buton të dorëzojë me të cilin Alice
ose Bob mund të vërtetë Mesazhi njëri-tjetrin.
Kështu që efekti neto nëse I drejtuar këtë kërkesë
duke bërë nyje app hapësirë ​​dot js, në qoftë se unë tërheq lart një çift
nga dritaret e shfletuesit është se Alice mund të jetë në të djathtë,
Bob mund të jetë në majtë dhe vetëm
të jetë i qartë nuk ka magji këtu unë kam marrë një dritare
në inkonjito kështu që nuk ka Ndarja e biskota apo ndonjë gjë
si kjo, këto janë dy përdorues të dallueshme.
Unë duhet të jetë në gjendje të ketë Alice thonë hello Bob, klikoni paraqesë
dhe tani ju shihni në të majtë se mesazhi Alice është dërguar
dhe pothuajse menjëherë në të djathtë.
Jo votimit të përfshira në dukje, Bob marrë të njëjtin mesazh.
Tani Bob thotë thonë hey alice e shihni efektin e kundërt.
Pra, çfarë ndodh në të vërtetë, se si shumë code nuk kemi nevojë për të shkruar
për të zbatuar këtë një chat server
që ju tani mund të nxjerrim mendërisht që të gjithë
në këtë dhomë, nëse kjo nuk ishin në tim [padëgjueshëm]
por në foo dot com ne mund të gjithë filloni të flisni menjëherë
me njëri tjetrin.
Pra, çfarë është e përfshirë dhe para se unë qartë këtë ekran kjo është kjo
është vetëm fole io duke qenë një pak e zhurmshme, është vetëm shtypje
nga debugging informacion në ekran,
nuk ka asgjë të vërtetë tjetër po ndodh atje.
Pra më lejoni të hapur app dot js, kështu si më parë ne kemi marrë disa gjëra
në majë të lëndës.
Një bandë e kërkesave, kështu që këto janë si bibliotekat
ose mprehin dhëna ose të kërkojë onces çfarëdo modeli mendor ju
duan të kenë dhe vetëm për radhitje FS është përdorur
për çfarë lloj të funksionalitetit?
Pra, sistemi fotografi kështu lexuar fotografi potencialisht dhe stuff like that
dhe unë e përdorin këtë në një vendosni si ju do të shihni,
shprehin sigurisht është ky Kuadri se ne jemi duke përdorur,
kjo nuk është rreptësisht e nevojshme ne mund të
si të hënën krejtësisht të krijuar vet server tonë http nga e para
duke bërë të krijuar server dhe të gjithë e atë lloj të kodit nga para
por si ne do të shohim këtë e bën gjërat pak më e lehtë
sepse të gjitha unë duhet të bëni është on line 3 here ilustroj me shembull konkret
dhe shprehin objekt, unë do të thërrasë kjo app, disi në mënyrë arbitrare,
Unë pastaj ta tregoj app për të dëgjoni më arbitrare port 1337,
që mund të jetë 80 nga konventa
dhe pastaj së fundi unë kam një të re Linja e cila sot është duke thënë
të kërkojë fole Biblioteka io dhe pastaj
me këtë qasje zinxhir do kjo dot operator unë jam vetëm
duke e quajtur një mësim të dëgjoni kjo është në thelb thënë socket
Biblioteka io për të dëgjoni të njëjtën server
ose web lidhjet fole.
Deri tani ajo, kështu që çfarë është Të bësh këtë, këto katër rreshta
të kodit këtu cilat duhet shikoni kujton larevel,
çfarë e bën këtë të përfaqësojnë?
>> [Seksion padëgjueshëm]
>> Kjo është një ... rrugë, vetëm një rrugë kështu në app dot JS,
aka server dot js varësi në atë që njerëzit duan të telefononi atë
në aplikacionet e tyre ju keni një konventë
të bërë përcaktimin rrugët tuaja,
app dot get do të thotë sa herë që ju merrni një kërkesë get për të shkuar
të për fjalë për fjalë zvogëlojë të shkojnë përpara dhe e quajnë këtë funksion anonim
dhe funksion anonim në këtë rast merr nga kërkesa
apo kërkesë dhe një përgjigje, potencialisht disa gjëra të tjera
por minimalisht këto dy.
Kërkesa ju jep juve akses për gjëra të tilla si parametrat http
dhe headers dhe të tjera gjëra lëng
dhe pastaj reagimi është mekanizmi
me të cilën ju mund të përgjigjur të përdoruesit.
Pra, kjo është super e thjeshtë edhe edhe pse ne nuk e shohim mjaft
njëjtën kod për herë të fundit, unë jam duke përdorur modulet e file sistemit,
krijuar metodën lexuar lumë të cilat në thelb e bën këtë,
të krijuar një rrjedhë lexuar e cila do të thotë në thelb të fillojë slurping
deri në bytes nga indeksi dot html si me efikasitet si ju mund të
pa domosdoshmërisht pritur deri tuaj të lexuar file gjithë
dhe si ju bëni këtë tub ato fjalë për fjalë
në kuptimin vertikal bar në qoftë se ju jeni të kënaqur
me komandën vijën linux,
tub atë në përgjigje e lëndës.
Pra, ka qenë dy shembuj në lidhje me rrjedhave të hënën,
ne vetëm shikuar një, por ju jeni të mirëpritur për të shohim mbrapa
në o lumë dhe lumë 1.
Stream 1 ... 0 bëri diçka të ngjashme me këtë,
Lumë 1 bëri diçka pothuajse tamam si kjo,
kjo është vetëm një njollë një avion i linjës të thënë lloj
i slurp diçka në këtu dhe pastaj të fillojë duke e dërguar atë këtu
në të njëjtën kohë pa duke bërë një masë të rënë dakord
dhe pastaj një e drejtë masiv,
kjo qasje është përgjithësisht më të efektshme.
Pra, kjo është lloj gjëra të vjetra edhe në qoftë se ajo ishte e re të hënën,
kjo është e gjitha që duhet për të zbatuar një chat server
me JS nyjeve dhe më në mënyrë specifike fole dot io.
Pra, si e bën këtë punë, më lejoni të lëvizë atë pak,
kështu io është vetëm një variabël që i referohet
në modulin ne kërkuar më herët,
dot socket është vetëm një pronë brenda saj
që më jep fole funksionalitetin lidhur
në është një metodë e zakonshme që ka të bëjë me atë nocion të përgjithshëm?
Një ngjarje e kështu me radhë aka dëgjoni në disa biblioteka ai thjesht do të thotë
me të dëgjuar këtë ngjarje cila quhet lidhje
dhe tani ju e dini këtë vetëm nga duke kërkuar në dokumentacionin,
kushdo që shkroi bibliotekën përcaktuar një ngjarje të quajtur
lidhje e cila bën çfarë tuaj do të mendojnë
kur Alice apo Bob lidh.
Shkoni përpara dhe e quajnë këtë Funksioni anonim marrë kalimi
në një argumenti klienti e cila është me sa duket një lloj
i objektit që përfaqëson Lidhja Alice
ose lidhje Bob ose Charlie ose dikush tjetër
dhe tani ne të bëjë të mëposhtme.
Ne treguar klientit pas ai ose ajo është i lidhur
për të dëgjuar në mënyrë specifike
për një mesazh që është plotësisht quajtur në mënyrë arbitrare mesazh
klienti zorrës së trashë.
Kjo është diçka që Tim dhe Kam ardhur me, ajo mund të jetë foo
ose bar, është vetëm disa string unike që kishim nevojë
për të vendosur mbi të si zhvilluesit.
Sa herë Alice apo Bob dëgjon
se kjo ngjarje anonim Funksioni duhet të quhet
dhe të dhënat, përmbajtja e Alice-së
ose mesazhi Bob duhet të jetë kaluar në këtë mbajtësin e ngjarjeve
dhe tani se çfarë duhet të klienti bëni mirë që ju mund të lloj
e lexoni këtë mjaft intuitive klienti duhet transmetuar,
i njohur ndryshe si lëshojnë një Mesazhi i quajtur metoda server
duke nënkuptuar këtë mesazh vjen nga serveri nuk
nga shfletuesit dhe çfarë do që mesazhi të jetë,
kjo është me sa duket payload nga çdo gjë erdhi nga klientët
dhe ne jemi vetëm do të në mënyrë arbitrare e quajti atë mesazh.
Pra, një shumë e kjo është arbitrar
përmes emërtimit të arsyeshëm konventa, Tim dhe kam ardhur
me, kryesisht Tim dhe pastaj ne thjesht janë krijuar në fund të fundit një
chat server që bën çfarë, kur Alice dërgon një mesazh
dhe hitet hyjë cila ngjarje me sa duket suspendohet,
vetëm për radhitje.
Llojet e Alice një mesazh, hitet të hyjë, mesazhi klienti është i shkarkuar,
ky kod që dëgjon dhe tani server transmeton çfarë,
çfarë është rezultati përfundimtar e kjo me të vërtetë?
Alice dërgon mesazh tani server ritransmeton atë
në mënyrë efektive për të gjithë përveç për Alice, pse të gjithë me përjashtim të
për Alice në qoftë se ju vetëm shikoni
në të klientit dokumentacionin dot transmetuar dot pranoj,
fjalë për fjalë e bën këtë, transmeton mesazhin
të gjithë përveç klient që ju ka dërguar
se mesazhi më i fundit.
Pra, kjo është arsyeja pse ju vetëm të parë atë një herë në çdo anë,
ju nuk e shihni si Alice dhe Bob duke marrë mesazhin e Alice.
Pra, kjo është ajo, kjo është një agjent transmetim
në qoftë se ju do të kjo është vetëm duke marrë në mesazhe
dhe ritransmetimin ato
dhe kjo është shumë shkallëzuar Unë do të thotë edhe
me një super të thjeshtë server dhe disa rreshta
e kodit që ju mund të me siguri trajtuar qindra në mos mijëra
e mesazheve në harmoni të thjeshta duke shkuar mbrapa dhe me radhë si kjo
dhe vetëm paramendoni kompleksitetin tani e bërë këtë në PHD
ose Larevel apo SQL im dhe se sa kodi ju do të keni
për të shkruar në mënyrë që të në të vërtetë të arritur këtë.
Tani në drejtësi këtë nuk është e drejtë e vazhdueshme
nëse server shkon poshtë kemi humbur të gjithë historinë
kështu që nuk është mjaft e një përkthim të përsosur, por është e
që përpara drejt.
Le të shikojmë në shkrimin e Java Kodi kemi anashkaluar më parë,
kjo është Alice-së dhe Klienti Bob,
faqe interneti ata janë duke përdorur tani le të shohim deri këtu për një moment.
Ka një kod pak më shumë
por kjo është shumë e shumë të vetëm jQuery këtu kështu njoftim
se në faqen e internetit që unë u larguan
deri një moment më parë ne përfshijnë bibliotekën jQuery,
fole io bibliotekë dhe si një mënjanë njoftim dallimin
këtu, çaj çaj në fillimi i një rrugë
si kjo do të thotë ajo që saktësisht,
ku është jQuery dot js në çfarë server?
Po.
>> [Seksion padëgjueshëm]
>> Është në internet vërtet quajtur fjalë për fjalë Kodi dot jQuery
dot com kështu që pse të çaj, çaj, pse jo vetëm një slash,
ku eshte http ose zorrës së trashë, çfarë do të thotë kjo në përgjithësi
në qoftë se ju keni plagë plagë në fillimi i url?
Kjo është në të vërtetë të dobishme.
Mirë kështu që çfarë është e qartë humbur http tani në qoftë se ne arsye
përmes kësaj logjike, zakonisht ju nuk keni nevojë
për të përmendur një servers emra të drejtë
si në qoftë se vetëm të përdorni çaj jQuery dot JS çfarë supozohet
nga shfletuesi?
Kjo fotografi është në të njëjtën server kështu që të vazhdojë atë lloj
i logjikës në qoftë se ju nuk e tregoni ajo çfarë protokoll çfarë është
Shfletuesi supozojmë, njëjtë protokoll kështu në qoftë se ju keni vizituar ndonjëherë faqet e internetit
që të ju jap një gabim bashku linjat e përmbajtjes të pasigurt
në këtë faqe është për shkak se dikush e ka të vështirë të koduar një http
slash zorrës së trashë slash URL për një image ose një skedar script Java
ose CSS fotografi, diçka e tillë në kodin burimor të faqes
por faqja e vetë në shfletues URL është http s.
Pra, kjo është vetëm mënyrë e sofistikuar për pak
e duke thënë se unë nuk e di çfarë është protokoll
se këto përdoruesit përfundimtarë do të përdorin
por vetëm sigurohuni që ndeshje në mënyrë që krom
dhe shfletuesit e tjera nuk çirrem në të përdoruesit.
Kapur vetëm duke qenë njerëzit jQuery kishte vendosur më mirë
deri https në serverin e tyre.
Pra, ata janë në të vërtetë renditur në 443.
Në rregull ndërkohë kjo një këtu kjo është lloj
i slash mashtruese fole io sugjeron
se ka një directory të quajtur fole dot io në serverin tim
por nuk është nëse ne thes
përreth ka Lista MODULI Nyja-së
por nuk ka asgjë publik në lidhje me këtë,
kur ne konfiguruar io fole për të dëgjuar në të njëjtat portet,
1337 në thelb se biblioteka se dikush tjetër ka shkruar është duke shkuar
për lloj të futur një kod në mjedis JS nyje s
dhe vetëm të dëgjojnë për këtë rrugë.
Kjo bibliotekë ka vetëm konfiguruar një rrugë për këtë,
kjo nuk është një directory e vërtetë.
Ajo do të jetë në një Vendndodhja standarde.
Mirë kështu që tani interesante pjesë,
kështu që kur dokumenti është e gatshme siç tregohet
nga ky jQuery ndërtojnë, e parë që unë jam duke shkuar për të shkuar përpara
dhe të lidheni me një gropë,
çfarë fole vetëm duke mbajtur atë të ... thjeshtë Unë jam duke shkuar për të lidhur
për të zvogëluar, kjo është ku përdoruesi është,
Unë e kam mbajtur shembull të thjeshtë ne jemi vetëm do të lidhë
në të njëjtën URL saktë që përdoruesi ka vizituar atëherë unë jam duke shkuar
të bëjë të mëposhtme, unë jam duke shkuar tregoni shfletuesit e Alice apo Bob
për të dëgjuar për mesazh nga serveri.
Përsëri kjo mund të ketë qenë foo
ose bar çdo kohë që ju dëgjoni një mesazh
nga ajo dhënat e thirrjes server dhe pastaj të bëjë këtë kod jQuery
që unë jam guessing më nëse të gjithë nuk është e njohur
me këto ditë, por në thelb një pin tek lista artikull
me UL ekzistuese të cilat u quajt mesazhe
që fjalë për fjalë thotë çfarëdo payload është
e chat mesazhit ndjekur nga një vizë ndarëse, e ndjekur nga të marrë,
pasuar nga një hapësirë ​​dhe pastaj një kohë për të rinovuar dhe kjo është arsyeja pse
të jetë e qartë nëse kthehemi
për këtë ju merrni këto shtesë plumba përsëri dhe përsëri
dhe përsëri me data herë.
Ndërkohë nëse shikojmë poshtë këtu ne vetëm duhet
për të trajtuar dorëzimin formë kështu që ishte i marrjes në dorëzim
e një mesazh të menjëhershëm, këtu është dërgimin dhe kjo është lloj
i palidhur me JS të nyjeve, dëgjoni me format paraqesin ngjarje.
Kur të ndodhë të parandaluar falimentimin, kjo thjesht do të thotë nuk e dorëzon
në server në zakonshme mënyrë, ringarkoni faqen e tërë,
ne duam të bëjmë këtë të gjithë nëpërmjet Ajax.
Ja vetëm disa kode jQuery
që në fakt të merrni të dhëna Lloji i të cilit është mesazhi,
emri i të cilit është mesazhi të shkojnë përpara
dhe për të marrë kjo është vlera e pastaj ju shkoni përpara
dhe në qoftë se ju në fakt kanë një mesazh, nëse Alice dhe Bob
ose Bob në fakt disa lloje none 0 Numri tasteve lëshojnë
në prizë një mesazh të quajtur Mesazhi klient me atë payload
dhe pastaj poshtë këtu kjo është ajo që e bën atë të gjelbër në krahasim
të kuqe, ne thjesht prodhimi aplikim anë [e padëgjueshme].
Pra, kjo është ajo, por të gjithë kjo është vetëm ngritur,
gjëra të vërtetë të ri unë do të argumentojnë është vetëm këto tri
ose pesë rreshta të kodit këtu dhe atë gjë e lë të kuptohet se në pushtet
i JS të nyjeve dhe me të kjo bibliotekë të veçantë.
Pra, le të marrin një të shpejtë shikoni në të shprehur dot JS,
kështu që ajo që unë jam do të përpiqen për të bëni në çift mbetur
e minutave këtu është ngritur një disa ide, disa teknika
që më pas do të marrë një çift pushim minutë, Tim do të ngritur
dhe pastaj ne do të zhyten më thellë në
për një më interesante shprehin aplikimit dhe gjithashtu
për të raft librash, biblioteka Tim në të vërtetë shkroi
për komunitetin burim të hapur
që na jep dritë elokuente Funksionalitetin me SQL e mia
dhe transaksionet dhe të tjera të tilla karakteristikat dhe ai gjithashtu do të zhyten
në pak më thellë për të Gjuha e Java script vetë,
si objekt i saj ose jo-klasë Modeli punon ndryshe e di
si një model prototip, disa më shumë për atë që do të vijnë.
Pra, le të marrin një vështrim në dy të fundit aplikacionet këtu, server pesë
dhe server 6 cilat janë të gjithë lloj të ngjashme në frymë,
këto nuk janë të chat servera por ata e përdorin shprehin.
Pra, le të marrin një vështrim në ajo që kjo në të vërtetë bën,
Unë jam duke shkuar për të shkuar përpara dhe të të hapur ... Unë jam duke shkuar për të drejtuar këtë app
me JS app nyje, unë jam duke shkuar për të kthehemi në shfletuesin tim dhe ringarkoni
dhe kjo është me sa duket e gjithë kjo server është duke bërë,
kjo është një server super e thjeshtë kjo është me sa duket një kërkim
motor kështu që nëse unë lloji në foo dhe të paraqesë, asnjë rezultatet e kërkimit
për foo, unë nuk e kam marrë rreth për të zbatimin e sofistikuar
fund përsëri, e gjitha kjo po ndodh
të bëni është jehonë pa marrë parasysh çfarë që shkruani asnjë rezultat për foo,
asnjë rezultat për bar kështu si do të bëjmë këtë
sepse nuk ka një copë çift, një,
ka edhe disa të inputeve të parashikuara
në server jo Larevel sigurisht por js nyje tani
kështu që ne duhet të disi të marrë në atë parametër Q,
ne jemi duke bërë në mënyrë të qartë një lloj pikëpamje këtu,
ne jemi duke i bërë një pamje në mënyrë ndoshta ka një mundësi
për templates ose variabël interprelation [fonetik]
kështu që le të marrin një vështrim në vijim.
Në JS app për këtë të veçantë server kjo është e gjitha ne kemi.
Një ne kërkojmë shprehim vetë, dy moduli rruga
e cila sapo ka disa sende të dobishme
si u bashkuar strings së bashku dhe kështu me radhë për mua,
Kam dëgjuar në portin 1337 dhe tani kjo është e re kështu ajo kthehet
nga ajo shprehur si Larevel mbështet plug ins të ndryshme
dhe teknologjive dhe gjëra të tjera dhe një
nga teknologjitë që ju mund të vihet në prizë është një motor pamje
e cila do të thotë vetëm atë që templating motor ju dëshironi të përdorni,
Larevel kishte atë të vetë gjë, por ju mund të plug
në gjëra të ndryshme, të ndryshme Kornizat P bukuroshe kanë
mënyra të ndryshme të templating, EJS është vetëm një të përbashkët
dhe një motor shumë e thjeshtë që vetëm le të ju të bëni gjëra
si formatimin e teksteve kaçurrel që keni pasur në Larevels sintaksë
për zëvendësimin e variablave,
kjo është pak më ndryshe syntactically është e gjitha.
Deri tani nuk ka këtë gjë të quajtur ndërgjegjshëm mesme në mënyrë që ju do të shihni
në tuaj ekipet vetë nyja e projektit a ndërgjegjshëm të mesëm është vetëm lloj kodi
ose biblioteka që ju të injektojnë
në [padëgjueshme] përgjigje Cikli i jetës së një kërkese,
me fjalë të tjera këto dy Linjat janë duke u thënë shprehin
për të bërë disa punë shtesë në mes të koha ajo merr një kërkesë
dhe në mes të kohës që dërgon që kërkesa të vet rrugën tuaj,
Kodi juaj që e keni shkruar.
Pra, në veçanti kjo linjë këtu përdorin dot shprehin statike dhe të gjithë
e këtij kompleksiteti këtë vetëm do të thotë në qoftë se ju shihni një kërkesë
që vjen në për një fotografi statike si foo dot jif ose foo dot css
ose foo dot jo JS kështu që një rrugë gjeneruar dinamike,
të shkojnë përpara dhe të marrë ajo jeton në subdirectory publik,
kjo është e gjitha që është bërë.
Kjo është lloj si hartës në Larevel, çdo gjë për web tuaj
apo directory juaj publik vend në Larevel.
Kjo linjë tjetër është vetëm duke thënë se unë dua të përdorin rrugët,
Unë dua të përdorni gjëra si app dot merrni
e cila ne pamë një moment më parë dhe ne do të shohim në vetëm një të dytë tani.
Pra app dot të marrë mjete dëgjuar për këtë rrugë,
çaj kur ju të merrni atë e quajnë këtë funksion anonim që merr
në një kërkesë dhe a përgjigje dhe tani vetëm
si Larevel ju keni një mënyrë të bërë një template,
Përgjigja e bëjnë dot, të japin kuotën e indeksit siç janë quajtur,
bëjnë është një template quajtur indeksi,
kjo është ajo kështu që le të pezullojë që thread për vetëm një vështrim moment
në përmbajtjen e views directory
dhe vini re kjo është shumë e super e thjeshtë për tani,
ka Indeksi dot EJS dhe kërko dot EJS,
Unë padyshim dua parë
sepse kjo është ajo që unë vetëm i lodhur që të merr dhe ne do të shohim
në indeksin shikime dot EJS më të vërtetë krejtësisht html
në këtë moment, nuk ka në të vërtetë nuk ka templating ndodh.
Kështu që unë teknikisht nuk e kam edhe nevojë për të thirrur atë EJS,
Unë nuk kam nevojë që funksionalitetin por kam mbajtur atë uniforme,
kështu që kjo është ajo, kjo është ajo që më jep atë formë super të thjeshtë.
Pra, ka vetëm një rrugë tjetër, nëse shikojmë këtu poshtë e kam thënë
se kjo është ajo që merret me të marrë çaj kërkimi, që kështu lloj Aktuale
e Google si mbajtës për formë dorëzimin, kur ju të merrni
se rruga e quajnë këtë funksion anonim
dhe bëjnë template quajtur kërko
dhe çfarë është e dyta Argumenti me sa duket do të thotë.
Ajo duket si një objekt JSON të llojet ose Java objekt script.
Çfarë është roli i që Argumenti i dytë me sa duket?
>> [Seksion padëgjueshëm]
>> Query aktuale që përdorues shtypur në me sa duket jeton
në kërkesë dot pyetje, pyetje duke iu referuar çdo gjë
pas pikëpyetje dot q cili është emri arbitrare
që unë i dha atë vetëm si Google
dhe ndërkohë q zorrës së trashë është vetëm duke thënë se të kalojë në template,
kërko dot EJS, një kyç i q dhe një vlerë
e çfarëdo q-së aktuale Vlera ishte.
Kështu që lë vetëm një fotografi në interes të pikëpamjeve,
kërko dot EJS I mbajtur kjo super e thjeshtë shumë,
Kjo është kryesisht vetëm html përveç për një linjë disi të shquar
cila është kjo sintaksë këtu e cila duket si një bandë
i templating ndryshme Motorët kjo thjesht do të thotë plug
në vlerë prej q dhe e bëjnë të guximshme.
Pra, nuk ka asnjë Kerkimi aktuale funksionalitetin por ajo ka lloj
të sugjerojnë se si ju do të strukturojë një skelet
i një kërkese të tillë.
Ndërkohë ... në të vërtetë unë mund të tregojnë një gjë tjetër,
vëreni se unë kam disa html up këtu për fotografi CSS
dhe Java fotografi script, nuk ka asgjë në ato fotografi
në këtë moment, por vini re se ekziston një directory publik
siç thashë më parë për fotografi statike kështu që nëse unë shkoj
në atje ka Lista ime css,
kur të shkoj në atje Ka stile dot css
dhe nuk ka asnjë përmbajtje atje
por kjo është se si ju do të kanë fotografi publike të qasshme.
Në rregull le të marrin një vështrim në një variant tjetër këtu
dhe pastaj ne do të prezantoj një ide dhe pushim.
Pra, kjo është server 6 e kaluar, kështu që kjo është pothuajse identike, përveç
për fund dy linjat e e cila duket si ky.
Pra, në të vërtetë ka një linjë e tretë që është ndryshe
por unë e kam fshehur ... kështu që më lejoni të kthehet deri pak kështu që ka dikush dëshiron
të propozojë çfarë po ndodh më këtu në kushtet e laik
ose kushtet teknike çfarë është në të ndryshme në lidhje me këtë version
lidhje me ato rreshta në nyjet më të lartë.
Ç'punë kam unë me sa duket bërë këtu dhe pse?
Po, Sharon.
>> [Seksion padëgjueshëm]
>> Po kjo duket si unë kam Indeksi lëvizur dhe kërko
në mënyrë të veçantë të drejtpërdrejtë apo diçka, Unë e kam faktorë ato
dhe kjo është në mënyrë që shumë si në Larevel ju mund të vënë të gjitha
e kontrollues logjikës tuaj brenda rrugët dot php
me funksione anonime përsëri dhe përsëri dhe përsëri
por që dosja sigurisht mund të merrni mjaft masive
kështu që në rrugët dot php ajo që më
e ju djema kanë bërë po ju keni specifikuar emrin
i një klasë kontrollues ose edhe emri i një metode
që duhet të merrni të quajtur
kështu që e njëjta ide këtu edhe pse Sintaksa është pak
i ndryshëm kështu që deri këtu njoftim
se kam me sa duket zbatuar JS mi nyje
modul dhe një modul është vetëm një Fotografi Java script që aderon
në thelb një konventë se ne do të shohim në vetëm një moment.
Pra, supozojmë se të gjithë tim funksionalitetit për indeksin
dhe për kërkimin e kanë me sa duket është vënë në këtë directory
dhe tani unë jam duke e quajtur atë gjithë modul ose pako apo bibliotekë,
çka të doni të mendojnë për atë si,
si rrugë një variabël quajtur rrugët.
Pra, me sa duket atje në rrugë dot indeks është një metodë e quajtur
Indeksi dhe me sa duket nuk ka një tjetër metodë të quajtur kërko
në këtë rrugëve module ose bibliotekë
dhe unë jam vetëm mposhti atë vetëm kështu që unë nuk e vënë të gjithë
e kodit tim anonim brenda dosjen time app.
Pra, le të shkojë në rrugë njoftimi ka vetëm indeksi dot js
dhe në qoftë se unë shoh këtu kjo është Konventa unë do të thotë më parë
kështu që kjo është shumë arbitrar por kjo është konventa nyje.
Çdo herë që të zbatojë vet nyje bibliotekën tuaj js,
aka modul ju në thelb mund të shkruar ndonjë kod Java Script ju
duan në këtë fotografi, ajo do të të rërë shumë të pastër boxed
në mënyrë që çdo variablat ju zgjidhni nuk do të përplasen
me bibliotekën e dikujt tjetër, variablat ose metoda apo ndonjë gjë
si kjo por çdo gjë ju doni të vë në dukje
me botën e jashtme ala a Metoda publik në Java script
apo php apo gjuhë të tjera ju keni për të pllum brenda
e një objekti globale që autor i nyjeve quajtur eksporteve.
Pra, duke bërë eksporteve dot Indeksi Unë jam i ekspozuar për përdoruesit
e këtij moduli një metodë të quajtur Indeksi që harta të këtij funksioni
kështu që është anonim në anën e djathtë
por unë jam në mënyrë efektive duke i dhënë asaj një emër në anën e majtë
dhe eksport atë të botës
në mënyrë që ju mund të telefononi dot indeks apo dot kërkim.
Pra, të jetë i qartë në qoftë se unë gjithashtu kishte diçka si funksion foo
në këtu që bëri diçka
se funksioni do absolutisht të jetë operacionale,
ajo mund të quhet në këtë fotografi por askujt
në botën e jashtme ftohtë ndonjëherë telefononi foo
sepse nuk i është eksportuar me anë të kësaj dot simbol.
Pra, kjo është e gjitha që po ndodh,
çdo gjë është e bukur të përmendur spaced për ju.
Pra, në fund të rezultojë në qoftë se unë bëj nyje të app dhe ringarkoni faqe është
se në qoftë se unë tani kërko
për bar ... funksionalisht Këto apps janë njëjta
por kjo është vetëm lloj i një hap drejt një zbatim më të pastër,
me siguri kur ju filloni shkruar kodin gjithnjë e më shumë
dhe kjo është e gjitha këto janë.
Natyrisht jo veçanërisht sofistikuar apo komplekse
por në thelb një pikënisje
për atë që do të jetë tuaj nyja e parë js app.
Ajo që ne do të bëjmë të ngjarë më vonë këtë javë apo këtë fundjavë
si ju jeni duke përfunduar deri në aplikacionet php ne do të pasojnë
me një shumë e thjeshtë Aplikimi për ekipi të zhyten
në të ngjashme në frymë të ushtrim të ngrohtë për php
cila bazuar në Anketa mes semestër,
folks kanë gjetur të dobishme duke kaluar ushtrimit
të bërë diçka në mënyrë të drejtë të thjeshtë
por në mënyrë të drejtë të udhëzuar para jush në të vërtetë trajtuar diçka më shumë
në tuaj kështu që ne do të ndiqni me që
dhe në thelb do të jetë për shkak një javë e gjysmë
nga tani mbivendosjes pak me php qëllimisht.
Çdo pyetje atëherë në shprehin, në io fole
ose konfuzion mbetur nga e hëna ndoshta.
Në rregull kështu që shpresojmë se një nga të-një-mënyra deri tani është
që ka për disa nga këto gjërat sigurisht shumë më pak
lart se sa ju mund të janë përdorur për të.
Pra më lejoni të prezantoj një ide e kaluar,
kështu që një shumë e zakonshme programing paradigmë
në shkrimin Java që është në të vërtetë i pranishëm në jQuery
në versionet e fundit kështu që mund të ketë në të vërtetë parë këtë teknikë
më parë, por është edhe mjaft zakonshme në js botë nyjeve,
kjo është e zakonshme në Tim-së vet bibliotekë Raft librash
kështu që ne do të rishqyrtojnë këtë në një shembull më konkret
në një moment është një zgjidhje të kodit si kjo,
kjo është përfaqësues i kodit pamë të hënën, kështu lexojë file
në këtë drejtim nuk është një reale Metoda është e ngjashme në frymë
të fs dot lexuar dosjen, por supozoj se kjo është vetëm disa bërë
up metodë që e bën diçka shumë të ngjashme.
Pra, ne u përplas me disa Çështjet të hënën në përgjithësi
kështu që ajo që është lloj ... pse kjo është një pjerrësi rrëshqitshme,
kjo e marr në telefon paradigmë i programing Java script
dhe duke e marr në telefon paradigmë Unë vetëm do të thotë këtë teknikë
ku ju nuk kthehen Vlerat menjëherë
për shkak se fuqia bllokojë server
nga duke bërë diçka tjetër që është e dobishme, në vend të kësaj ju në telefon
si sinjalizon në Shake Kasolle, kur ju jeni gati
për të kaluar prapa një përgjigje si argument.
Kjo është një pjerrësi rrëshqitshme
ku shumë shpejt bëhet i bezdisshëm pse?
Po.
>> [Seksion padëgjueshëm]
>> Po, minimalisht ai bëhet lloj i drejtë i paqartë
në qoftë se ju keni të gjitha këto thirrje mbështet dhe në qoftë se ju jeni i përkrahin
në stil të mirë është duke u goxha masivisht prerë
me kalimin e kohës dhe rast unë theksoj këtë shembull në qoftë se ju lloj i cek
përmes ajo është e thjeshtë për qëllim të të hapur një skedë JSON dhe print it,
si kjo është ajo dhe ende ne kanë disa 8 ose 10 linja këtu
të cilat janë tashmë lloj i prerë në mënyrë të papëlqyeshme,
ne kemi marrë kapur provoni cili është i
në qoftë se ju jeni të panjohur është një teknikë trajtimin gabim
që ju lejon të provoni diçka të
dhe nëse ajo dështon, atëherë ju të kapur atë me shpresë
pa gjithë programin tuaj ndërprerjen por ka
aq shumë kompleksitet si ju lloji i duhet të mendojmë këtë nëpërmjet
dhe Zoti na ruajt ne bëjmë një çift të metodë tjetër asinkron e quan,
gjë është tashmë e do të jetë e gjatë këtu,
ju mund të mendoni se kjo është lloj i një estetike pa kuptim, por kjo
sepse thirrja mbrapa paradigmë është aq e zakonshme të paktën
në kodin amtare nyjeve këtë shumë shpejt të bëhet i lodhshëm,
vështirë të korrigjoj, gjurmë fillon në materie kështu që ju mund të lloj
e ndjekje gjëra poshtë, kjo është jo vetëm një mënyrë shumë të lumtur
i programing.
Pra, çfarë folks kanë bërë
në nyje të ndryshme kontekst mes ata po përpiqen për të lehtësuar këtë,
os për premtimet e shkallës është një tjetër mënyrë e të menduarit
rreth shkruar kodin asinkron që vizualisht kthen diçka
si version 1 në ky version 2.
Unë pretendojnë dhe kjo është përsëri vetëm lloj të përziera
mes kodit aktuale dhe pseudo Kodi, kjo është përfaqësues
se si ju do të ri-zbatuar që të njëjtën gjë e saktë,
hapur një skedë JSON, kuptoj atë dhe të shtypura
duke përdorur diçka quajtur premtimet
dhe detaj kyç sintaktik është
se ka një chaining ndodh këtu.
Vini re se vetëm pikëpresje
në tërësi ... të vërtetë mirë le të ... Unë nuk dua të mashtrojë.
Kjo nuk është shumë e nevojshme por le të jenë në përputhje,
vini re se pikëpresje që referohet hapjes
e kësaj deklarate të tërë është gjithë rrugën poshtë këtu.
Kështu, ndërsa unë kam formatuar kjo ... lloj të duken
si tri deklarata, tre Deklaratat që ju mund të shihni
në Java apo gjuhë të tjera që kanë provoni dhe kapur
dhe trajtimin përjashtim në përgjithësi.
Vini re se unë vetëm zinxhir vlera e kthimit e secilit
këto metoda bashku.
Pra, çfarë po ndodh, lexoni fotografi në qoftë se kjo është një metodë që ekziston,
me sa duket mundohet për të lexuar këtë fotografi,
dot atëherë kështu atëherë është shumë e Emri i përbashkët i dhënë në botë
e premtimeve për metodë që duhet të kryej
në qoftë se gjëja i mëparshëm sukses.
Pra, kjo është lloj si të suksesit mbajtës, kështu që atëherë json dot Parse,
edhe json dot Parse është vetëm një metodë
në bibliotekë JSON globale dhe kjo me sa duket i përmbahet
në këtë rast Modeli premtim
kështu që ne themi që ne mund vetëm të supozojmë që e quajmë këtë djalë
dhe nëse ai ka sukses, atëherë telefononi këtë djalë dhe pastaj të
nëse kjo është në të vërtetë ekzekuton thjesht ngushëlluar hyni e të dhënave
në fjalë.
Pra, ku është gabimi trajtimin, vini re unë kam lloj
i dha shumë verbërisht jashtë këtë parvaz
dhe e quajti vetëm këtë Metoda dhe atëherë kjo metodë
pa e kontrolluar për problemet.
E pra, ku janë ata problemi me sa duket trajtohen ... në këto
Deklaratat e cache në mënyrë të ndryshme Bibliotekat përdorni të ndryshme
konventat por në ky rast atëherë është lloj
e mbajtës sukses, cache është lloj mbajtës gabim
dhe për shkak se ne nuk e kemi thyer ky zinxhir ne vetëm i mbajnë duke përdorur
dot simbol për të lidhur së bashku thirrje e muzës origjinal metoda
të lexojë file dhe funksioni Lutja e hapjes ndonjë gabim sort
i flluskë mënyra e tyre nëpërmjet zinxhirit
deri sa ata janë trajtuar në të vërtetë e cila është mënyra më e pastër se sa duke u përpjekur
të merren me të çdo Hapi i mallkuar e rrugës
në mënyrë që kodi juaj shumë shpejt bëhet të dhënave joreale.
Në këtë rast ne jemi duke duke pretenduar se ne përpiqemi
për të kapur atë që quhet një gabim sintakse kjo është në thelb një
nënklasa e një më të përgjithshme gabim dhe në qoftë se ndodh pretendim
se është e pavlefshme json ndryshe në qoftë se kjo është një gabim më të përgjithshme
se ne nuk e prisnim vetëm të thonë se në përgjithësi nuk mund të
lexoni skedarin.
Tani kjo është vetëm për qëllim të jetë kodi përfaqësues
por në qoftë se ju keni programuar në script Java papërpunuara ose në Java
apo gjuhët e tjera ky është Kodi procedural në thelb,
kjo është një traditë shumë provoni deklaratë të kapur
dhe kjo është estetike dhe funksionalitetin që premton
ose duke u përpjekur për të ju jap ku ju mund të mendoni për atë
si vetëm me shkrim provoni dhe pastaj kapur dhe e kap nuk ka
për t'u shqetësuar në çdo pikë e vetme e mundshme
ku një gabim mund trajtuar ... të ndodhë,
ju mund të trajtojë të gjitha në të përfundojë si të nevojshme nga një bllok të vogël
të kodit, dhe ju mund edhe të të dalluar në mesin e gabimeve
si ju mund të në këtë rast këtu.
Kështu Nomenklatura që ju do të të parë në literaturën ndoshta
si Tim paraqet disa e kjo stuff është shumë e
që në mënyrë ideale të doni premton për të zgjidhur
dhe zgjidhjen e një mjet premtim që më në fund kthehet në mënyrë që të flasin
por jo në një mënyrë tradicionale të vlerës, kështu që as ia del
për dështon në thelb.
Në rregull ndonjë pyetje atëherë, kjo nuk është për qëllim të jetë i mjaftueshëm
për ekspozimin ndaj premtimeve por vetëm një model mendor
për kodin ju do të fillojë për të parë.