>> Alle reg, sodat ons weer terug, 'n paar van die doelwitte vir vandag,
ons sal haal waar ons opgehou het om die laaste keer,
onthou dat ons die maak van hierdie opvolging
bediener verwante programme, super eenvoudige, maar met behulp van node JS
en dan ook onlangs gebruik uitdruklike raak as
en wat is uitgespreek JS die analoog van die PHP wêreld.
So Express is meer ... naby,
so Express is in wese die MBC raamwerk wat is redelik
gewild in die knoop JS wêreld,
Boekrak wat ons sal sien Vandag via Tim is 'n analoog
van die man van woorde wat 'n ORM op 'n voorwerp verhouding mapper
wat eintlik maak dit makliker lae vlak SQL-kode te vermy
en eintlik verhoudings druk tussen verskillende voorwerpe.
So een van die koelste dinge eerlik
oor knoop JS is net hoe maklik dit leen hom
te doen real time aansoeke, dinge soos chat bedieners
of boodskappe bedieners, enigiets wat julle nou gebruik
soos Google ... G-chat of Google hangout
of Facebook status updates of selfs Twitter as jy
op hul webblad alles is 'n soort van die regte tyd
of gee jou die illusie van die regte tyd
en dit is eintlik 'n pyn in die nek te doen met iets
soos PHP en SQL my reg wat het ons voor
op Maandag sou wees om die middel
deur wat jy kan implementeer om die illusie van real time gedrag
met 'n chat server in PHP, wat sou jy doen?
Alice stuur 'n boodskap, treffers betree waar gaan dit?
Ja.
>> [Onhoorbaar artikel]
>> In 'n data basis en dan wat beteken Bob se leser het
te doen om werklik te sien wat Alice het gesê, ja?
>> [Onhoorbaar artikel]
>> Hou stemdag die databasis, reg, so 'n Ajax versoek het
elke tweede aan die brand, elke paar sekondes of ons gepraat kortliks
maar het nie kyk na 'n voorbeeld van iets genaamd 'n lang stemdag,
iemand onthou hoe
dat meganisme ... op 'n hoë vlak werk?
>> [Onhoorbaar artikel]
>> Presies, ja so 'n leser nog steeds maak 'n Ajax versoek
aan 'n bediener, 'n cat dot PHP maar cat dot PHP lyk net
te hang, is dit in wese sit in 'n tyd lus vir soveel
as 30 sekondes tipies en slegs een keer die cat dot PHP lêer
besef Ag daar is 'n nuwe ry
in die data basis doen dit eintlik reageer
met 'n http reageer.
So jy dink dat dit dalk anders hang die bediener
en dit nie tot 'n mate
maar dit beteken daar is 'n baie minder oorhoofse
omdat jy nie 'n nuwe TCP nodig nie verband, 'n nuwe htp verband
om werklik te vra data van die bediener.
Maar knoop JS kom met 'n baie gewilde biblioteek genoem socket
dot io wat jy kan nooit gebruik is gebou op die top
van 'n tegnologie genaamd web socket wat teenwoordig
in die mees moderne blaaiers en wat socket io doen, is om toelaat dat jy
om wese skep 'n aanhoudende verband
tussen die leser en bediener dit is 'n baie lae oorhoofse
sodat jy nie noodwendig het dieselfde skaal kwessies
wat jy kan as jy voortdurend slaan die bediener
in die wêreld van PHP en my SQL en dies meer.
Selfs vir ouer blaaiers
wat nie ondersteun web-aansluiting hierdie biblioteek socket dot io kan
terug te val op flitse implementering van voetstukke
en voetstukke is 'n netwerk ding van CS143 byvoorbeeld.
Of dit kan selfs terug te val op die lang stemdag self, sodat hulle implementeer
wat dieselfde soort werk
om vir die handhawing eintlik die illusie van daardie verband.
So socket [onhoorbaar] io en dit is in die vorm
van 'n Java script biblioteek, wese as jy dit gebruik
in die vorm van 'n knoop JS aansoek jy nie net installeer
dit as 'n pakket gebruik van iets soos NPM wat ons gebruik op Maandag
en of jy ook 'n stroop tag in jou HTML-lêer
wat sê die gebruik kliënt kant biblioteek.
So is daar twee helftes te en wat ons hier gedoen
in die vierde iterasie Maandag se volgorde
voorbeelde is die volgende.
So hierdie lêer struktuur is herinner aan 'n baie gemeenskaplike stel
vir uitgespreek JS en Gelukkig is dit makliker manier
as lervo [fonetiese] was, onthou wanneer jy
up lervo jy het 'n reuse-nare stort van 'n hele klomp van die lêers,
ondernemer dopgehou, lib en baie swaar gewig in vergelyking met hierdie.
Nou in regverdigheid ons gestroop weg dinge wat pretty much 'n
afleiding, maar al die sappige dinge is werklik
in node modules.
Net om jou 'n smaak as ons kyk
by knoop modules is daar twee modules of biblioteke
wat ek afgelaai, hierdie sou die ekwivalent
van die verkoper gids, een word uitdruklik genoem wat
soos larevel maar in node
en-potjie io die een wat ek nou net genoem.
So diegene bestaan ​​sodat ons kan doen die volgende as ek oop
up kom ons sê indeks dot html, laat se eerste blik op die html,
dit gaan te stel hierdie liggaam, my super,
super eenvoudige chat bediener.
So is daar blykbaar 'n ul met 'n unieke idee van boodskappe
en dit is waar een Li op 'n tyd,
al die kits-boodskappe is gaan verskyn tussen Alice
en Bob en dan is daar 'n eenvoudige vorm met 'n teks veld
en 'n stuur-knoppie deur wat Alice
of Bob kan eintlik boodskap mekaar.
So het die netto effek as Ek hardloop hierdie aansoek
deur te doen knoop ruimte artikels dot JS, as ek trek 'n paar
van die leser vensters, is dat Alice dalk op die regte,
Bob kan wees op die links en net
duidelik te wees dat daar is geen magic hier Ek het 'n venster
in incognito, so daar is geen deel van koekies of enigiets
soos hierdie, dit is twee afsonderlike gebruikers.
Ek moet in staat wees om Alice te hê hallo sê Bob, klik op stuur
en nou sien jy aan die linkerkant dat Alice se boodskap is gestuur
en byna onmiddellik op die regterkant.
Geen stemdag skynbaar betrokke is, Bob ontvang dieselfde boodskap.
Nou Bob sê sê hey Alice sien jy die teenoorgestelde effek.
So, wat regtig aangaan, hoe veel kode moet ons skryf
om dit te implementeer om 'n chat server
wat kan jy nou ekstrapoleer verstandelik dat almal
in hierdie kamer as dit was nie op my [onhoorbaar]
maar cat dot com Ons kan almal begin gesels onmiddellik
met mekaar.
So, wat is betrokke en voor ek duidelik die skerm is dit hierdie
net socket io 'n bietjie raserig, dit is net druk
uit die opsporing van inligting na die skerm,
daar is regtig niks anders gaan daar aan.
So laat my oopmaak artikels dot JS, so as voordat ons het 'n paar dinge
aan die bokant van die lêer.
'N klomp van die vereistes, so dit is soos biblioteke
of skerp leidrade of vereis onces watter geestelike model wat jy
wil hê en net te vat FS gebruik
vir watter soort funksie?
So lêers stelsel so lees lêers potensieel en dinge soos wat
en ek gebruik dit in 'n plaas as wat jy sal sien,
Express natuurlik is dit raamwerk wat ons gebruik,
dit is streng nie nodig wat ons kan
soos op Maandag heeltemal te skep ons eie http bediener van nuuts af
deur dit te doen skep bediener en al van daardie soort kode van voor
maar soos ons sal sien dit maak dinge 'n bietjie makliker
want al wat ek hoef te doen, is on line 3 hier instansieer
en druk voorwerp, sal ek noem dit inligting, ietwat arbitrêr,
Ek sal dan vir die jeug te luister op arbitrêr Port 1337,
wat kan 80 word deur die konvensie
en dan laastens Ek het 'n nuwe line vandag, wat sê
die aansluiting vereis io biblioteek en dan
hierdie ketting benadering sal hierdie dot operateur Ek is net
roep 'n les te luister wat wese vertel die potjie
io biblioteek ook luister na dieselfde bediener
of web-aansluiting verbindings.
So wat nou, so wat is om dit te doen, hierdie vier lyne
van die kode hier wat moet kyk wat herinner aan larevel,
wat beteken dit verteenwoordig?
>> [Onhoorbaar artikel]
>> Dit is 'n ... roete, net 'n roete so in artikels dot JS,
aka bediener dot JS afhangende op wat die mense wil om dit te noem
in hul eie programme jy het 'n konvensie
doen die definisie van jou roetes,
artikels dot get beteken wanneer jy 'n get versoek om te gaan
Om vir letterlik streep gaan voort en roep hierdie anonieme funksie
en die anonieme funksie in hierdie geval neem deur vereiste
of versoek en 'n reaksie, potensieel 'n paar ander dinge
maar minimaal hierdie twee.
Die versoek gee jou toegang dinge soos http parameters
en kop-en ander sappige dinge
En dan is die reaksie is die meganisme
deur wat jy kan reageer op die gebruiker.
So dit is super eenvoudige selfs al het ons nie gesien het nie heeltemal die
dieselfde kode laaste tyd, ek is die gebruik van die lêer stelsel modules,
skep Lees stroom metode wat in wese beteken dat,
skep 'n lees stroom wat beteken in wese begin slurp
die grepe uit die indeks van dot html so doeltreffend as wat jy kan
sonder om noodwendig wag tot jou lees die hele lêer
en as jy dit doen pyp dit letterlik
in die vertikale bar sin As jy tevrede is
met die Linux command line,
pyp dit aan die reaksie voorwerp.
So was daar twee voorbeelde verwant aan strome op Maandag,
ons net kyk na een, maar jy is welkom om terug te kyk
by stroom o en stroom 1.
Stroom 1 ... 0 gedoen iets soortgelyk aan hierdie,
stroom 1 het iets byna presies soos hierdie,
dit is net 'n gladde een sak te sê soort
van slurp iets in hier en dan begin hier stuur
op dieselfde tyd sonder doen 'n massa stem
en dan 'n massiewe reg,
hierdie benadering is oor die algemeen meer doeltreffend te maak.
So dit is soort van die ou dinge selfs al is dit was 'n nuwe op Maandag,
dit is al wat dit neem om te implementering van 'n chat server
met knoop JS en meer spesifiek socket dot io.
So hoe werk dit, laat my beweeg dit 'n bietjie,
so io is net 'n veranderlike wat verwys
aan die module vereis vroeër,
dot potjie is net 'n eiendom binnekant van dit
wat gee my potjie verwante funksies
op 'n algemene metode wat hou verband met wat die algemene idee?
'N gebeurtenis so aan aka luister sommige biblioteke dit beteken net
op hierdie gebeurtenis te hoor wat genoem word verband
en nou is jy weet dit net van kyk na die dokumentasie,
wie die biblioteek geskryf 'n gebeurtenis genaamd gedefinieer
verband wat wel wat jou sou dink
wanneer Alice of Bob verbind.
Gaan voort en noem dit anonieme funksie neem afsterwe
in een argument die kliënt wat is blykbaar 'n soort
voorwerp wat verteenwoordig Alice se verbintenis
of Bob se verband of Charlie of enigiemand anders
en nou het ons die volgende.
Ons vertel die kliënt na hy of sy is verbind
spesifiek luister
vir 'n boodskap wat heeltemal arbitrêr genoem boodskap
kolon kliënt.
Dit is iets wat Tim en Ek het met, kan dit wees cat
of bar, dit is net 'n paar unieke string wat ons nodig
om te besluit oor as die ontwikkelaars.
Wanneer Alice of Bob hoor
so 'n geval hierdie anonieme funksie genoem kan word
en die data, die inhoud van Alice se
of Bob se boodskap moet wees geslaag het in hierdie geval hanteerder
en nou wat moet die kliënt goed doen wat jy kan soort
redelik intuïtief lees die kliënt moet saai nie,
andersins bekend as stoot 'n boodskap genoem metode bediener
sodoende die boodskap aan te dui kom van die bediener nie
van die leser en wat sou die boodskap wees,
dit is blykbaar die loonvrag van alles wat kom van die kliënte
en ons is net gaan om te arbitrêr noem dit die boodskap.
So baie van hierdie is arbitrêre
deur middel van redelike benaming konvensies, ek en Tim het
met, meestal Tim en dan het ons eenvoudig uiteindelik die skep van 'n
gesels bediener wat doen wat, wanneer Alice stuur 'n boodskap
en treffers betree watter gebeurtenis blykbaar kry afgedank,
net om te vat.
Alice tipes 'n boodskap, treffers betree, word die boodskap kliënt afgevuur,
hierdie kode hoor en nou die bediener uitsendings wat,
Wat is die eindresultaat van hierdie werklik?
Alice stuur die boodskap nou die bediener rebroadcasts dit
effektief vir almal behalwe vir Alice, hoekom almal behalwe
vir Alice as jy net kyk
by die dokumentasie kliënt dot dot uitsending erken,
doen letterlik dat, uitsendings van die boodskap
vir almal behalwe die kliënt wat jy gestuur
dat die meeste onlangse boodskap.
So dit is hoekom jy net sien dit een keer aan elke kant,
sien jy nie beide Alice en Bob kry Alice se boodskap.
So dit is dit, hierdie is 'n heruitzetting agent
As jy dit is net om in boodskappe
en heruitsending hulle uit
en dit is merkwaardig skaalbare ek bedoel selfs
met 'n super eenvoudige bediener en 'n paar lyne
van die kode wat jy kan beslis hanteer honderde, indien nie duisende
konkurrente eenvoudige boodskappe heen en weer soos hierdie
en dink net die kompleksiteit nou van om dit te doen in PHD
of Larevel of my SQL en hoeveel kode wat jy wil hê
ten einde te skryf eintlik bereik nie.
Nou in regverdigheid hierdie is nie aanhoudende reg
As die bediener gaan af verloor ons die hele geskiedenis
so dit is nie heeltemal 'n perfekte vertaling, maar dit is
wat reguit vorentoe.
Kom ons kyk na die Java script kode wat ons oorgeslaan oor vroeër,
Dit is Alice se en Bob se kliënt,
die webblad hulle is nou met behulp van Kom ons kyk hier vir 'n oomblik.
Daar is 'n bietjie meer kode
maar dit is pretty much net jQuery hier so kennisgewing
wat in die web bladsy dat ek getrek
'n oomblik gelede het ons sluit die jQuery biblioteek,
die aansluiting io biblioteek en as 'n eenkant kennis van die verskil
hier, streep streep op die begin van 'n pad
soos hierdie beteken wat presies,
waar is jQuery dot JS op watter bediener?
Ja.
>> [Onhoorbaar artikel]
>> Dit is op die internet ja letterlik genoem kode dot jQuery
dot com so hoekom streep, streep, Hoekom nie net een streep
waar is die http of die kolon, Wat beteken dit in die algemeen
as jy streep nie slash op die begin van die url?
Dit is werklik nuttig.
Goed so wat is natuurlik ontbreek http nou as ons rede
deur middel van hierdie logies, tipies jy hoef nie
'n bediener name te noem reg
soos as net gebruik streep jQuery dot OTOPE wat veronderstel
deur die leser?
Dat die lêer op dieselfde bediener so bly dat die soort
logika as jy nie vertel nie dit wat protokol wat die
leser aanvaar, dieselfde protokol so As jy al ooit besoek webwerwe
wat gee jou 'n fout langs die lyne van onveilige inhoud
op hierdie bladsy is dit omdat iemand het hard gekodeer 'n http
kolon streep streep URL vir 'n beeld of 'n Java script lêer
of CSS-lêer, iets soos dit in die bron-kode van die bladsy
Maar die artikel self in die implementeer URL is http s.
So dit is net die fancy entjie
sê ek weet nie wat die protokol is
dat hierdie einde gebruikers gaan gebruik
maar maak net seker dit wedstryde sodat Chrome
en ander blaaiers nie skreeu nie by die gebruiker.
Die enigste vangs synde die jQuery mense het 'n beter gestel
up https op hul bediener.
So hulle is eintlik notering op 443.
Alle regte intussen hierdie een hier is 'n soort
misleidende streep socket io stel
dat daar is 'n gids genoem socket dot io op my bediener
maar daar is nie as ons steek
om daar die knoop module se gids
maar daar is niks publiek oor hierdie,
wanneer ons ingestel socket io om te luister op dieselfde hawens,
1337 wese dat die biblioteek dat iemand anders geskryf is gaan
te sorteer voeg 'n paar kode in node JS se omgewing
en luister net vir hierdie pad.
Dit biblioteek het net 'n roete vir hierdie ingestel,
dit is nie 'n ware gids.
Dit sal in 'n wees standaard plek.
Goed so nou is die interessante deel,
sodat wanneer die dokument gereed is soos aangedui
deur die jQuery bou, eerste gaan ek om voort te gaan
en verbind met 'n potjie,
wat aansluiting net deur ... hou dit eenvoudige ek gaan om aan te sluit
te sny, dit is waar die gebruiker is,
Ek het die voorbeeld eenvoudig gehou ons is maar net gaan om aan te sluit
om die presiese dieselfde adres dat die gebruiker het dan besoek ek gaan
die volgende te doen, ek gaan vertel Alice se of Bob se leser
om te luister vir die boodskap van die bediener.
Weereens kon cat gewees het
of bar enige tyd wat jy hoor 'n boodskap
van die bediener noem dit data en dan doen dit jQuery kode
wat ek vermoed die meeste, indien nie almal is vertroud
met hierdie dae, maar wese 'n pen om 'n lys item
om die bestaande UL wat is boodskappe genoem
wat sê letterlik Wat ook al die vrag is
van die chat boodskap gevolg deur 'n koppelteken, gevolg deur ontvang,
gevolg deur 'n spasie en dan 'n update tyd en dit is waarom
duidelik te wees as ons gaan terug
hierdie jy hierdie bykomende bullets weer en weer
en weer met datum tye.
Intussen, as ons kyk hier het ons net
die vorm voorlegging te hanteer so dit was die ontvangs
van 'n direkte boodskap, hier is die stuur en dit is 'n soort
van niks met knoop JS, luister om die vorms stuur gebeurtenis.
Wanneer dit gebeur verhoed verstek Dit beteken net nie stuur dit
na die bediener in die gewone manier, herlaai die hele bladsy,
ons wil om dit te doen al via Ajax.
Hier is net 'n paar jQuery kodes
om werklik te kry die insette wie se tipe is boodskap
wie se naam is die boodskap voort te gaan
en kry dit waarde dan moet jy gaan voort
en as jy werklik 'n boodskap, as Alice en Bob
of Bob eintlik tipes sommige Geen 0 aantal toetsaanslagen uitstraal
op die socket 'n boodskap genoem boodskap kliënt met wat loonvrag
en dan hier is dit wat dit groen in teenstelling maak
rooi, ons het eenvoudig uitset toestel kant [onhoorbaar].
So dit is dit maar al Dit is net die opstel,
die ware nuwe dinge sou ek argumenteer is net van hierdie drie
of vyf reëls van die kode hier en dat die soort van wenke op die krag
van node JS en met dit hierdie spesifieke biblioteek.
So kom ons neem 'n vinnige kyk na uitdruklike dot JS,
So wat ek gaan om te probeer om doen in die oorblywende paar
minute hier opstel van 'n paar idee, 'n paar tegnieke
wat dan 'n paar minute breek, sal Tim stel
en dan sal ons duik in dieper
na 'n meer interessante druk aansoek en ook
te boekrak, die biblioteek die Tim eintlik geskryf
vir die open source gemeenskap
dit gee ons welsprekende lig funksie met my SQL
en transaksies en ander sulke funksies en hy sal ook duik
in 'n bietjie dieper na die Java script self,
hoe sy voorwerp of nie-klas model werk anders weet
as 'n prototipe-model, sommige meer op wat kom.
So kom ons neem 'n blik op twee laaste Aansoeke hier, bediener vyf
en bediener 6 wat almal soort van soortgelyke in gees,
hierdie is nie bedieners gesels maar hulle gebruik Express.
So kom ons neem 'n blik op wat dit eintlik nie,
Ek gaan om voort te gaan en oop ... Ek gaan om hierdie inligting te hardloop
met knoop inligting JS, ek gaan om te gaan terug na my leser en herlaai
en dit is blykbaar al hierdie bediener doen,
dit is 'n super eenvoudige bediener dit is blykbaar 'n soektog
enjin so as ek tik in cat en indien nie, geen resultate
vir cat, het ek nie kry om te die implementering van die gesofistikeerde
agterkant, al gaan dit
te doen, is eggo nie saak wat jy geen resultate tik vir cat
Geen resultate vir die bar So hoe doen ons dit
want daar is 'n paar stukke, een,
Daar is duidelik 'n paar insette wat gelewer word
na die bediener nie Larevel natuurlik, maar knoop JS nou
so ons moet een of ander manier kry op daardie parameter Q,
Dis duidelik dat ons doen 'n soort van die lig hier,
ons lewering van 'n oog so Miskien is daar 'n geleentheid
vir templates of veranderlike interprelation [fonetiese]
so laat ons neem 'n blik By die volgende.
In artikels JS vir hierdie besondere bediener is dit al wat ons het.
Een wat ons nodig het druk self, twee van die pad module
wat net 'n bietjie nuttige dinge
soos by snare saam en so meer vir my,
Ek luister op poort 1337 en nou dit is 'n nuwe en dit blyk
dat uitdruklike soos Larevel ondersteun verskillende plug ins
en tegnologie en ander dinge en een
van die tegnologie wat jy kan in prop is 'n oog enjin
wat net beteken wat template enjin wil jy gebruik,
Larevel het sy eie ding, maar jy kan aansluit
in verskillende dinge, verskillende perske P raamwerke het
verskillende maniere van template, EJS is net 'n gemeenskaplike
en 'n mooi eenvoudige enjin dat net laat jy dinge doen
soos die krulhakies wat jy in Larevels sintaksis het
vir die vervanging van veranderlikes,
dit is 'n bietjie anders sintakties is al.
So nou is daar hierdie ding genoem middel ware so as jy sien
in jou eie spanne knoop projek om 'n Midde-ware is net soort van die kode
of biblioteke wat jy spuit
in die [onhoorbaar] reaksie lewensiklus van 'n aansoek,
Met ander woorde hierdie twee lyne vertel uitdruklike
'n paar ekstra werk tussen om te doen die tyd wat dit kry 'n versoek
en tussen die tyd wat dit stuur daardie versoek om jou eie roete,
jou kode wat jy geskryf het.
So in die besonder die lyn hier gebruik uitdruklike dot statiese en al
van hierdie kompleksiteit dit net beteken dat as jy sien 'n versoek
wat kom in vir 'n statiese lêer soos cat dot Jif of cat dot css
of cat dot OTOPE nie so 'n dinamies gegenereer roete
gaan voort en neem dit leef in die openbare subdirectory,
dit is al wat om te doen.
Dit is soort van soos die kartering in Larevel, alles om jou web
of jou openbare gids eerder in Larevel.
Hierdie volgende lyn is net sê ek wil gebruik roetes,
Ek wil dinge om te gebruik soos artikels dot kry
wat ons gesien het 'n oomblik gelede en ons sal sien in net 'n tweede nou.
So artikels dot kry middel luister vir hierdie roete,
streep wanneer jy dit noem hierdie anonieme funksie wat '
in 'n versoek en 'n reaksie en nou net
soos Larevel jy het 'n manier van die lewering van 'n sjabloon,
reaksie dot lewer, haal unquote-indeks
lewer 'n sjabloon genoem indeks,
dit is dit so laat skors wat n draad vir net 'n oomblik kyk
by die inhoud van die menings gids
en sien dit is ook super eenvoudige vir nou,
daar is indeks dot EJS en soek dot EJS,
Ek wil natuurlik die eerste
want dit is die een wat ek net moeg te lewer en ons sal sien
in standpunte indeks dot EJS meeste heeltemal html eintlik
Op die oomblik is daar eintlik geen template aangaan.
So ek tegnies het nie eens nodig om dit te EJS noem,
Ek wat funksies hoef nie maar ek het dit uniform,
so dit is dit, dit is wat gee my dat super eenvoudige vorm.
So is daar net een ander roete As ons kyk hier Ek het gesê
dat dit is wat hanteer kry streep soek so die werklike soort
van Google soos hanteerder vir die vorm voorlegging, wanneer jy
dat die pad noem dit anonieme funksie
en lewer die sjabloon genoem soek
en wat is die tweede argument vermoedelik beteken.
Dit lyk soos 'n into voorwerp van vorme of Java script voorwerp.
Wat is die rol van die tweede argument vermoedelik?
>> [Onhoorbaar artikel]
>> Die werklike navraag dat die gebruiker getik blykbaar woon
in aanvraag dot navraag, navraag verwys na alles
na die vraagteken dot Q wat is die arbitrêre naam
dat ek het dit net soos Google
en intussen Q kolon is net sê slaag in die sjabloon,
Soek dot EJS, 'n sleutel van Q en 'n waarde
van watter Q se werklike waarde was.
So wat laat net een lêer van belang uitsig,
Soek dot EJS ek gehou hierdie super eenvoudige ook
Dit is meestal net html behalwe vir 'n ietwat merkwaardige lyn
wat is die sintaksis hier wat lyk soos 'n klomp
van verskillende template enjins beteken net prop
in die waarde van q en maak dit vet.
So daar is geen werklike soek werking nie, maar is dit nie soort
van voorstelle hoe jy sou 'n geraamte struktuur
van 'n aansoek soos dit.
Intussen ... eintlik het ek mag 'n ander ding wys,
sien dat ek het 'n paar html hier vir css lêers
en Java script lêers, daar is niks in die lêers
op die oomblik nie, maar kennis wat daar is 'n openbare gids
soos ek vroeër gesê het vir statiese lêers so as ek gaan
daar is daar my css gids,
As ek gaan daar Daar is style dot css
en daar is geen inhoud daar
maar dit is hoe jy sou het die publiek toeganklik lêers.
Alle regte Kom ons neem 'n blik by een ander variant hier
en dan sal ons voer 'n idee en breek.
So dit is bediener 6 die laaste, so dit is byna identies, behalwe
vir die onderste twee lyne wat lyk soos hierdie.
So eintlik is daar 'n derde lyn wat verskillende
maar ek het verborge ... so laat my terug effens so het iemand wil
voor te stel wat gaan hier in leketaal
of tegniese terme wat is anders oor hierdie weergawe
met betrekking tot die lyne in die boonste nodes.
Wat het ek vermoedelik hier en waarom gedoen?
Ja, Sharon.
>> [Onhoorbaar artikel]
>> Ja dit lyk soos ek verskuif indeks en soek
sodat aparte direkte of iets, Ek het hulle faktor uit
en dit is so dat baie soos in Larevel julle almal kan sit
van jou kontroleerder logika binnekant van roetes dot PHP
met anonieme funksies weer en weer en weer
maar dat lêer natuurlik kan 'n bietjie massiewe
so in roetes dot php wat die meeste
julle ouens is besig met is jy die naam vermeld
van 'n kontroleerder klas of selfs die naam van 'n metode
wat genoem moet kry
so dieselfde idee hier selfs al die sintaksis is 'n bietjie
verskillende so hier kennisgewing
dat ek glo my eie node JS geïmplementeer
module en 'n module is net 'n Java script lêer wat voldoen
wesenlik een konvensie dat ons sal sien in net 'n oomblik.
So aanvaar dat al my funksie vir die indeks
en vir soek het blykbaar gestel is in hierdie gids
en nou is ek 'n beroep dat die hele module of pakket of biblioteek
alles wat jy wil hê om te dink aan dit as,
as roetes 'n veranderlike genoem roetes.
So glo daar roetes dot-indeks is 'n metode genoem
indeks en glo daar is n ander metode genoem soek
in hierdie roetes modules of biblioteek
en ek is net besig om dit net so dat ek nie al sit nie
van my anonieme kode binnekant van my jeug lêer.
So laat ons gaan in roetes kennisgewing daar is net indeks dot JS
en as ek kyk hier is dit die konvensie ek bedoel vroeër
so dit is redelik arbitrêre maar dit is die knoop konvensie.
Enige tyd wat jy implementeer jou eie node JS biblioteek,
aka module wese kan skryf 'n Java script kode wat jy
wil in hierdie lêer, sal dit word baie skoon sand doos
sodat enige veranderlikes wat jy kies, sal nie bots
met iemand anders se biblioteek, veranderlikes of metodes of enigiets
soos dit nie, maar niks jy wil bloot te stel
na die buite wêreld ala 'n openbare metode in Java script
of PHP of ander tale jy het om in te plons
van 'n globale voorwerp wat die skrywer van knoop genoem uitvoere.
So deur te doen uitvoer dot indeks ek bloot te stel aan gebruikers
van hierdie module 'n metode genoem indeks wat kaarte aan hierdie funksie
so dit is anoniem op die regterkant
maar ek is effektief en gee dit 'n naam op die linkerkant
en uitvoer om dit te die wêreld
sodat jy kan bel dot dot-indeks of soek.
So duidelik te wees as ek moes ook iets soos funksie cat
hier dat iets gedoen
wat funksie sal absoluut operasionele,
dit in genoem kan word hierdie lêer, maar niemand
in die res van die wêreld koue ooit cat noem
want dit is nie uitgevoer is deur middel van hierdie dot-notasie.
So dit is al wat gaan aan,
alles is mooi noem uitmekaar vir jou.
So die eindresultaat as ek dit doen knoop van inligting en herlaai die bladsy
dat as ek soek nou
vir bar ... funksioneel hierdie programme is dieselfde
maar dit is net soort van 'n stap na 'n skoner implementering,
beslis wanneer jy begin skryf meer en meer kode
en dit is al wat dit is.
Dit is duidelik dat nie besonder gesofistikeerde en komplekse
maar in wese 'n beginpunt
vir wat sal jou wees eerste node JS inligting.
Wat ons sal waarskynlik later doen hierdie week of hierdie naweek
as jy klaar op die PHP aansoeke wat ons sal volg
met 'n mooi eenvoudige aansoek vir die span om te duik
in 'n soortgelyke in gees die warm up oefening vir PHP
wat gebaseer is op die mid semester opname,
mense het nuttig vind gaan deur die oefening
om iets te doen redelik eenvoudig
maar redelik gelei voordat jy eintlik iets meer te pak
op jou eie so sal ons opvolg met daardie
en in wese sal wees as gevolg van 'n week en 'n half
van nou oorvleuel effens met PHP doelbewus.
Enige vrae en dan op druk op socket io
of verwarring oorblywende van Maandag miskien.
Alle regte so hopelik een van die neem-'n-maniere tot dusver is
dat daar vir 'n paar van hierdie dinge beslis 'n baie minder
oorhoofse as jy dalk is gebruik om.
So laat my voer 'n laaste gedagte,
so 'n baie algemene programing paradigma
in Java script wat eintlik teenwoordig is in jQuery
in die onlangse weergawes so mag hê eintlik gesien hierdie tegniek
voor, maar dit is ook baie algemeen in die knoop JS wêreld,
dit is algemeen in Tim se eie Boekrak biblioteek
so ons sal weer hierdie in 'n meer konkrete voorbeeld
in 'n oomblik 'n oplossing die kode soos hierdie,
dit is verteenwoordigend van die kode ons gesien het op Maandag, so lees lêer
in hierdie konteks is nie 'n ware metode dit is soortgelyk in die gees
dot lees lêer FS maar aanvaar dat dit net 'n paar gemaak
up metode wat nie iets baie soortgelyk.
So ons het in 'n paar kwessies op Maandag in die algemeen
So, wat is 'n soort van ... hoekom is dit 'n glybaan,
noem dit terug paradigma van programing Java script
en deur paradigma terug te bel Ek bedoel net hierdie tegniek
waar jy terugkeer nie waardes onmiddellik
want dit mag blok die bediener
om iets te doen anders wat nuttig, jy plaas terug te bel
soos die gonsers by Skud Shack wanneer jy gereed is
terug te slaag 'n reaksie as 'n argument.
Dit is 'n glybaan
waar dit baie vinnig raak irriterende hoekom?
Ja.
>> [Onhoorbaar artikel]
>> Ja, minimaal dit soort deurmekaar reg
as jy het al hierdie oproep rug en as jy hou
om goeie styl dit is om mooi groot skaal ingekeep
oor tyd en geval ek wys hierdie Byvoorbeeld, as jy soort van vlugtig
deur dit is net bedoel 'n into lêer oop te maak en druk dit,
soos dit is dit, en tog het ons het 'n paar 8 of 10 lyne hier
wat reeds soort van vies ingekeep,
ons het probeer vang wat
As jy nie vertroud is 'n fouthantering tegniek
wat u toelaat om iets te probeer
en as dit nie werk nie dan jy vang dit hopelik
sonder jou hele program beëindig, maar daar is
soveel kompleksiteit soos jy soort van hierdie om te dink deur middel van
en God verbied ons doen 'n paar ander asynchrone metode noem,
die ding is reeds gaan oor hier te wees,
jy dalk dink dit is 'n soort van 'n dom estetiese, maar dit
omdat die oproep terug paradigma is so algemeen ten minste
in inheemse knoop kode van hierdie baie vinnig vervelig,
moeilik om te ontfout, die inkeping begin saak sodat jy kan sorteer
van Chase dinge af, dit is net nie 'n baie gelukkige manier
van programing.
So, wat mense gedoen het
in verskeie konteks node onder hulle is probeer om dit te vereenvoudig,
os byvoorbeeld beloftes is 'n ander manier van dink
oor die skryf van asynchrone kode wat visueel draai iets
soos weergawe 1 in hierdie weergawe 2.
Ek eis, en dit is weer net soort van gemengde
tussen die werklike kode en pseudo kode, dit is verteenwoordigende
van hoe jy weer te implementeer wat presies dieselfde ding,
open 'n lêer into, ontleed nie en uit te druk
uit die gebruik van iets genoem beloftes
en die sleutel sintaktiese detail
dat daar is 'n aaneenskakeling hier aan die gang.
Let daarop dat die enigste kommapunt
in die hele ... eintlik goed laat se ... Ek wil nie te mislei nie.
Dit is nie streng noodsaaklik maar laat ons konsekwent wees,
sien dat die kommapunt wat verwys na die opening
hierdie hele verklaring is al die pad af hier.
Dus, terwyl ek geformateer hierdie ... soort kyk
soos drie state, drie stellings wat jy kan sien
in Java of ander tale wat probeer vang
en hantering van uitsonderings meer in die algemeen.
Let daarop dat ek net ketting die terugkeer waarde van elke
van hierdie metodes saam.
So wat gaan aan, lees lêer As dit is 'n metode wat bestaan,
blykbaar probeer hierdie lêer om te lees,
dot dan so is dan 'n baie algemene naam gegee in die wêreld
beloftes vir die metode wat moet voer
As die vorige ding daarin geslaag.
So dit is soort van soos die sukses hanteerder, so dan into dot parse,
goed into dot parse is net 'n metode
in die globale into biblioteek en dit glo voldoen
in hierdie geval die belofte model
sodat ons sê ons kan net aanvaar dat hierdie man oproep
en as hy daarin slaag om dan noem hierdie man en dan
As dit is eintlik voer uit eenvoudig troos teken die data
in die vraag.
So waar is die fout hantering, soort kennis wat ek
baie blindelings trap uit hierdie lys
en net noem hierdie metode en dan hierdie metode
sonder om ooit te keur vir probleme.
Wel, waar is die probleem vermoedelik hanteer ... in hierdie
kas state so anders biblioteke gebruik verskillende
konvensies, maar in hierdie geval is dan sorteer
van die sukses hanteerder, die kas is 'n soort van die fout hanteerder
en omdat ons nie gebreek hierdie ketting ons hou net gebruik
dot-notasie om te skakel saam die oorspronklike metode aanroeping
Lees van lêer en die funksie aanroeping enige foute soort
van borrel hul pad deur die ketting
totdat hulle is eintlik hanteer Dit is aansienlik skoner as om te probeer
om te gaan met dit elke damn stap van die pad
sodat jou kode baie vinnig word onwerklik data.
In hierdie geval is ons beweer dat ons probeer
te vang wat genoem word ' fout dit is in wese 'n
subklas van 'n meer generiese foute en as dit gebeur eis
dat dit ongeldig into anders As dit is 'n meer generiese fout
dat ons nie verwag het nie Net meer algemeen sê kan nie
lees lêer.
Nou is dit net bedoel verteenwoordiger te wees nie
Maar as jy in geprogrammeer het rou Java script of in Java
of ander tale is dit prosedure-kode wese,
dit is 'n meer tradisie probeer vang verklaring
en dit is die estetiese en die funksies wat beloof
of probeer om jou te gee waardeur jy kan dink dit
as net die skryf van probeer en dan vang en dan vang nie met
by elke bekommer enkele moontlike punt
waar 'n fout mag hanteer ... gebeur nie,
jy kan dit alles te hanteer by die eindig as wat nodig is van 'n klein blok
van die kode, en jy kan selfs onderskei tussen foute
as jy kan in hierdie geval.
So het die naam dat jy sien in die literatuur miskien
as Tim bied 'n paar van hierdie dinge ook is
wat ideaal wat jy wil beloof op te los
en die oplossing van 'n belofte middel wat uiteindelik terug te keer om so te praat
maar nie in 'n tradisionele wyse van die waarde, so dit óf slaag
vir versuim wese.
Alle reg om enige vrae dan Dit is nie bedoel om voldoende
blootstelling aan beloftes maar net 'n geestelike model
vir die kode wat jy sal begin om te sien.