>> Guztiak eskubidea.
Beraz cliffhanger izan zen, zer da Node.js Dakizuenez bezala, gaur egun?
Ezer? Bai?
>> Zen bat bezalakoa da esparru idazten JavaScript
aplikazioetan zabal -
>> Ados, lan egiten duen.
>> - Ezagutzen atsegin dut bezalako erabilera komun -
edo zerbait duzun egin ahal izango bezalakoa da -
[Inaudible Oharra]
>> OK ona.
Bai, beraz, esparru bat da.
Motor bat da eta horren bidez, zuk Javascript kodea exekutatu ahal
zerbitzari gune.
Honek esan nahi du gauza errazena
Komando-lerro bat idaztea bezalako Python edo ez Bash script
edo Ruby edo PHP, baina besterik Ikusteko Javascript-a berez
eta exekutatzea batean komando gonbita keinukariak.
Edo benetan exekutatu dezakezu web zerbitzari batean dago.
Eta hain zuzen ere barruan Node.js berez,
Esparru horretan sorta oso bat da liburutegiak eta horien artean daude
HTTP zerbitzaria eraiki-en.
Beraz, benetan idatzi dezakezu zerbitzari bat ikusten dugu
une bat besterik ez, super erraz by besterik pixka bat ulertzeko
HTTP eta TCP eta portuak.
Eta entzute bat abiarazi dezakezu web zerbitzari Apache gabe,
Microsoft IIS gabe.
Beste edozein gabe softwarea instalatuta,
zuk zuzenean abiarazi honetan eta entzuteko ataka gehienak edozein
sisteman duten zaren baimenik.
Beraz, kasu eta puntu, utzi joan eta ireki
Adibide honetan sortu, zerbitzari-0.js.
Beraz nabarituko goiko Fitxategi hau, besterik mordo bat
izanarren iruzkinak of, eta, ondoren, han pare bat da
kode lerro ordezkariaren dugula ikusiko recurringly.
Beraz, var HTTP lortzen "HTTP" eskatzen.
Beraz, eraiki-Node.js to ' azpiegitura sorta oso bat da
diren benetan besterik modulu liburutegiak eta dena ordenatu
Izen espazioaren identifikatzaile bakarra
bezalako bat hau "HTTP" da.
Beraz, horrek asko bezala Java eta C + + bezalako hizkuntzak
eta C, denean bakarrik duzu inportatu edo, besteak
edo nodo hitz egiteko eskatzen modulu bat bere bit du.
Eta memoria guztiak eskatzen lortuko kargatutako
RAM sartu eta, beraz erabiltzen da.
Beraz, ordenatzeko kargatu duzu hau liburutegi edo modulu eskari.
Horrek esan nahi du aurrera eta eskatzen
programa hau HTTP liburutegian,
eta liburutegi hori aipatzeko arabera HTTP izeneko aldagai baten bidean.
Baina ezkerreko ikur hau Could Izan ezer deitu, foo,
bar, baz, ez du axola.
Beraz, C + + eta Java ez bezala eta C non denean behar duzu
edo liburutegi bat inportatu da besterik moduko
bihurtzen globalki eskuragarria,
Node.js moduluak dira gehiago ongi izen-tartea.
Beraz, hori egin - funtzionalitate eskuragarria da bakarrik une
Izen aldagai honen bidez.
Ezin duzu besterik hasteko dauden Idazteko metodo
bertan eskuineko modu bat hau da, ziurrenik ona,
zeren orduan zure izen-tartea ez du lortu ia cluttered
hizkuntzak asko bezala.
Ondo da, beraz, gaur egun ohikoa den bezala iradokitzen, HTTP zerbitzari bat sortzeko
Jonathan [bere gain hartu ortografia] gisa posible izan da, hitzez hitz
gisa deituz bezain erraza da barruan sortu zerbitzariak metodo
HTTP moduluaren.
Beraz, itzuli egin da hau erreferentzia
web zerbitzari mota batzuk egiteko.
Etorri da Apache, ez da pisua nahitaez heavy gisa.
Hau da, apur bat errazagoa.
Eta, orain, daukat besterik besterik gabe, egin gauza batzuk.
Beraz, lehenengo, let me korrituko hondoan hemen behera
eta saltatzeko kudeatzailea une batez metodoa.
Eta nabarituko kode-lerro hau,
server.on hau da, funtsean esan nahi du zerbitzari -
jQuery kodea bezala entzuteko,
ekitaldi bat entzun eskaera izeneko
eta besterik etxebizitza bat hartu beharko luke zer egin dut
eskaera gertaera bat denean zerbitzari batean suteak.
Bai?
>> Deitu Funtzio kudeatzailea.
Beraz, literalki exekutatu hori erreferentziatutako kodea
aldagai hau, eta egia esan, Ez sinbolo den aldagai bat hemen,
zer ikur dela aipatuz?
Beno, izen hau funtziona hemen
eta kudeatzailea itxuraz bi argumentu hartzen ditu.
Zergatik bi? Beno, bada besterik ez duzu den dokumentazioa ez irakurri
modulu zehatz honetan, zuk kontatu egingo duen kudeatzailea
batean aldarrikatzen egingo izango da gutxienez bi argumentu gainditu,
eskaerari erreferentzia bat,
eta eskaera dugu, barrutik literalki esan nahi HTTP eskaera.
Beraz, horiek HTTP goiburuak guztiak agian gogoratzen duzu
hasieratik bertatik seihilekoa edo aurretiko klase batzuk
edo bezalako esperientzia lortuko lerro eta ostalari lerroan
eta Erabiltzaile-agentea line, hori guztia kapsulatzen da eta gehiago barrutik
eskaera objektu honen.
Eta erantzuna objektu da datuak irteerako egiteko ordenatuta.
Beraz, honi buruzko ikerlan bat egin behar duzu objektu hori ahal izateko da
Informazio atzera bidaltzeko metodo deituz nabigatzailea
bigarrenak argudio horretan Res izeneko erantzuna.
Baina hau foo deitu edo litezke bar, hau konbentzio besterik ez dira.
Beraz, gaur egun, zer egin dezaket?
Beno, barruan duten dirudielako web zerbitzari super simple honen
ezartzeko naiz duten I, naiz honako hau egin behar.
HTTP bat idaztera noa egoera kodeaz 200 header,
200 esanahia Ados, guztiak ongi da.
Eta, gero, egingo dut on itxuraz pasatzeko.
Zer da datu-mota eskuineko burua bigarren argumentua?
>> Objektu bat da?
>> Objektu bat da zenbat gakoak eta balioak?
Just bakoitzean bat, eskuinera, bikotea balioa gako bat.
Beraz, 'eduki mota'.
Eta arrazoi bakarra Hura aipatuz dut hemen da
delako gidoi izan liteke minus zeinu bat conflated
edo horrelako zerbait.
Beraz, hemen aipatu gabe egon, singe edo komatxo.
Baina paradigma berriro komun
Ikusteko Javascript-a kodean ohi da Komatxo guztiak egun hauetan,
Koloneko eta ondoren balioa.
Beraz, hau besterik ez da deiturikoak mind mota.
Hau HTTP goiburu bat da hori literalki joan
edukia gidoi mota bi puntu izan nahi du testua barra arrunta duten joan
hemen bertatik bidaliko da nabigatzaileak zerbitzari
beraz, nabigatzaileak badaki Testu gordina gisa honetako exekutatu behar den ala ez
edo HTML edo gisa irudi edo film bat
edo flash fitxategi bat edo beste edozer.
Orain, nora benetan nahi dut orriaren gorputzean bidali?
Beno, besterik gabe, irakurketa eginda dokumentazioa
erantzun objektuaren liburutegi honen barruan.
Ikusten dut ez dagoela eskubide bat da Metodo eta hori kate bat hartzen du,
agian beste gauza batzuk, baina minimoki katea.
Eta katea da zer txu nabigatzaileak.
Kasu honetan, bere super simple, bere kaixo mundua,
baina opne izan zitekeen parentesia, html, ixteko kortxetea,
parentesi irekiak burua, itxi parentesi eta abar,
hau html gordina izan daiteke.
Baina adibide mantenduz ari gara besterik tu by simple
Kontuan mota errazena itzazu eta horrek, dudarik gabe, testu / laua da.
Eta gero, besterik response.end esan nahi du, konexioa itxi
eta nik egin dudan guztia bidali Sort barruan buffered
Objektu hau itzuli nabigatzaileak.
Egin dut. Ondo da.
Beraz, azken gauza Hemen behera egiten ari naiz
eta hau da, zertxobait arbitrarioak eta ekarri cool izan nahi du,
da, naiz kontatzea zerbitzari azkenik entzun
TCP jakin batean portu lehenetsita.
Hasieratik gogoratzen klase duten zerbitzuak -
edo normalean bakarrean duzu identifikatu ditu zenbakien arabera,
AD web, 443 da HTTP oinarritutako da webgune, 22 SSH da, 21 FTP da
eta 1337 besterik ez da arbitrarioa baina 1024 baino handiagoa da
horietatik gehienetan esan nahi du sistemak, erabili ahal izango dut
super beharrik gabe erabiltzaileen pribilegioak.
Beraz, besterik gabe, komenigarria da.
Baina 8080, off da - komun bat Bat, 8088, benetan ezer big
Milaka komun gisa baina hau besterik elite gehiago da.
Ondo da, beraz, zer gertatzen den benetan denean exekutatu dut hau?
Beno, ez besterik bisitatu dut arakatzaile batean orrialdean.
Fitxategi honen zerbitzari-0.js deritzo.
Berriro, Apache delako orain irudi out
bigarrenak erdia Ikastaroaren.
Izateko web nahi badut zerbitzaria, idatzi behar dut
eta, ondoren, web zerbitzari hau exekutatu.
Baina bihurtzen da JavaScript bai bezeroaren aldean
eta zerbitzari aldean da lengoaia interpretatu bat.
Beraz, behar dut guztia itzultzaile bat.
Beraz it's - azpimarratzen bada exekutatu nodo eta orduan zerbitzari-0.js,
Ahal dudan edo ez ikusteko irteera batzuen arabera
zer liburutegiak on Sartu dut, ezer ez dirudi gertatzen ari dena.
Baina utzi joan a me nabigatzailea eta joan gaitezen
IP bera egiteko nire CS50 bezeroen.
Baina honek ezin izan besterik baita izan nire Mac
edo nire PC eta ondoren sakatu Sartu.
Benetan Apache itxura.
Hori da direktorioa bezalako begiratu dugu zerrendarekin
Lehenengo seihilekoan at.
Beraz, zer oker egin dut?
Bai.
[Inaudible Oharra]
Zehazki, ezta?
Beraz, Apache, oraindik entzuten da lehenetsia 80 atakan.
Aldatu izan dut, nahiz eta, Hura itzaltzeko izan dut guztiak elkarrekin
baina oraindik martxan.
Baina mutil hauek, ahal zalantzarik gabe elkarrekin bizi.
Besterik ez dut jarri Koloneko 1337 eta ondoren, agian
edo ez agian at barra Azkenean portu honetan sartzeko
zerbitzari honetan izan abian dagoela.
Eta, orain ikusten dut kaixo, mundu itzuli da.
Eta reload hit ahal dudan bezala adina aldiz nahi dudan bezala,
eta oraindik ere, sortu orri bat zerbitzatu.
Ireki dut Chrome, hain zuzen ere bada inspektore, joan sarerako
eta, ondoren, berriro kargatu orrialde-osoa,
nabarituko dela hain zuzen ere, hau izan zen bidali dela eskaera.
Begiratzen dut Raw jatorrian bada,
nabarituko nire nabigatzailea bidaltzen gauza horiek guztiak.
Eta ondoren, erantzuna zerbitzariari super erraza izan zen.
200 da.
Ez da oso baxua bada pantailan,
han eduki mota da.
Eta gero Node.js Sort automatikoki
data erantsia ni eta beste gauza guztiak
Nabigatzaile normalean espero.
Beraz, ikus dezagun, besterik gabe bat little behatu.
Let me atzera jo kodeari zerbitzari-0.js eta let me -
joan sartu naizen bakoitzean kudeatzailea,
dezagun esan dit console.log.
('Bisitaria izan dugu!').
Ez dut behar den birkonpilatu edo horrelako zerbait,
lengoaia interpretatu bat da.
Beraz, gaur egun, let me atzera joan orrialdean, berriz kargatzea bat, bi,
hiru aldiz eta joan nire leiho itzuli.
Eta, orain ikusten dut.
Beno, hori da arraroa, Sei ildo ikusten dut.
Interesgarria web bitxikeriak, zergatik egin Sei eskaera ez hiru lortu dut?
Bai?
[Inaudible Oharra]
Bai. Beraz, badakizu, beharbada gisa goiko aldean ergelak ikono txiki
nabigatzaileak barraren horrek asko
webgune erabil litekeela Harvard gailur bat izan,
enpresaren logo bat izango da agian edo horrelako ezer.
Beraz, egun hauetan nabigatzaile moduko
of presumptuously egiteko bat HTTP eskaera osagarriak
Ia webgune bakoitzera duten egiaztapena bisitatzen duzun egotekotan
default fitxategi batek izeneko favicon.ico
direktorio gisa berean Eskatzen duzun fitxategia.
Eta hala bada, jartzen ikonoa ez dago.
Beraz, guztiak ikusten ari gara da zehazki hori.
Eta hain zuzen ere, ikus dezagun badugu hau ikusi ahal izango baizik eta mota baino
besterik ez, 'bisitaria izan dugu'.
Dezagun aurrera eta irteera joan me.
Eta bakarrik ezagutzen dut honetatik dokumentazioa begiratzeko.
Han barruan jabetza bat URL izeneko eskaera objektuaren
eta hori gertatzen bidea izan nahi du
eskatu dela benetako URL batean.
Beraz, zerbitzariak berrabiarazi badut besterik gabe nodo rerunning arabera
zerbitzari-0.js eta on orain ez, hau da, bi,
Hiru eta itzuli hona.
Hor dago.
Barra da zer I - eskatutako giza
favicon.ico da in zer nabigatzailea da
presumptuously eskatzeko.
Baina puntua ez da hainbeste favicon stuff
baina zerbitzariak nola operatzen.
Bai?
>> Zergatik ari da hori izan eskaera batzuk izan?
>> Zergatik behar du - nola funtzionatzen duen HTTP izaeraren arabera.
Beraz, HTTP bakarrik eskatu ahal fitxategia aldi berean bat.
Nabigatzaile smart izan daiteke egun hauetan
eta mantentzeko TCP konexio irekia.
CS143 hartu duzu, edo, oro har, bada networking ezagutzen,
beraz eraginkortasuna irabazi lor dezakezu
sarea mantenduz ahokadura irekia
HTTP anitz egiteko eskaerak ostean seriean gainean
baina fitxategi bat ari dira eskaera bakoitzeko.
Beraz, bisitatu baduzu antzeko zerbait -
Esan nahi dut joan gaitezke webgune gehienak edozein.
Joaten bazara izateko - dezagun tira Chrome en inspektore hemen.
Lortzeko bete gehienetan Agian orrialdearen.
Sare fitxan joan eta www.cnn.com joan.
Eta duzunean bisitatu cnn.com, bere homepage -
Zure nabigatzaileak baizik atrociously hace - oraindik kontatuta.
Ados. Gutxienez 289 HTTP eskaerak behin eta berriro.
Eta horregatik duzunean bisitatu bereziki bloated webguneak,
kargatzeko pisutsuak dira delako guztiak
aktiboen kargatzen ari dira.
Beraz, 298 antza du.
Han Ajax batzuk izan liteke buruzko puntu honetan, joan edo zenbait
aktiboen besterik baxua dira.
Beraz, horietako bakoitza da bat banakako eskaera atzera joan
eta aurrera, atzera eta aurrera.
Eta horregatik lehenago, nahiz moduko hitz egin dugu, nahiz
horri buruz zertxobait fancifully horretan gidoi etiketa jarri,
erabat hace a aldea denean duzu -
asko hasten da trafikoa eta asko
fitxategiak ari eskatu.
Eta honen bakoitzean adierazten ziurrenik irudi bat, multimedia fitxategia,
Ikusteko Javascript-a fitxategi batean, CSS fitxategi edo antzekoak.
Beraz, dagoeneko ari gara arte 4 megabyte batzuk besterik
gaur egungo albiste begiratu.
Ona galdera.
Ondo da.
Beraz, zer dira batzuk upsides nahiz eta?
Eskuinera, nola egin behar da ezagutzen dugun PHP dagoeneko web-orriak.
Eta zuetako asko etorri zen klasea Django jakitea
eta Python edo Ruby rails.
Beraz, zergatik ez dugu behar oraindik beste Hizkuntza eta azpiegitura?
Zein da bereziki Node.js badakizu ona?
[Eten]
Gauza batzuk?
Ez? Bai?
>> Mezuak duenean.
>> Beraz, mezuak duenean.
Beraz, egia da, eta egia da arrazoi teknikoago bat
eta hori Node.js eta benetan Ikusteko Javascript-a da, batez
asinkronoak ongi egokitzen kodea,
Horren bidez sortu baduzu ilusioa
anitz egiteko aldi berean gauza.
Beraz, ari dira, nahiz benetan ostean seriean gertatzen,
hain zuzen ere, kasu gehienetan, JavaScript bai bezero alboko
eta zerbitzariaren aldeko da gaika bakar.
Eta zuk 161 hartzen ari bada edo are 61 esan nahi du -
Programa honen ezagutzen,
interprete ahal literalki bakarrik ez da gauza bat aldi berean.
Baina hori ez da handia web zerbitzari baten antzeko zerbait
Bertan dozenaka izan dezakezu edo ehundaka edo agian milaka
guztiak saiatzen erabiltzaileen Zure web-orrian sartzeko
oso aldi berean.
Eta, hala ere, iradokitzen horien manipulazioa bat
ondoren bestearen atzetik beste batez ere, zenbait
dutenek eskaera ikusi dugun bezala CNN on zerbitzatu behar izatea
300 fitxategi aurretik nahiz eta hurrengo erabiltzaileak iritsi
ikusi nahi duenak dioen albistea.
Node.js da hobeto egokitzen Horrelako inguruneetarako.
Zer gertatzen da, zeren Edozein motela entzierro prozesua
Disko batetik fitxategi bat irakurtzen edo antzekoak datu-base bat kontsultatzeko edo hizketan
beste sare zerbitzari batzuk,
hori izan ohi latentzia, ezta?
Duzu hartu bada 61 edo 161 batez ere, era honetako guztiak
periferiko zerbitzuak joera askoz motelagoa izan
barruan ezer egin baino bera RAM eta PUZ bera
kasu honetan esan du zerbitzaria exekutatzen ari.
Baina, zer buruzko nice Node.js ahal duzun hori da -
eta JavaScript orokorrago dela zerbait egin dezakezu
eta ondoren esan, "Hmm, hau da, joan
me hartzeko gutxi milisegundotan edo are segundo batzuk.
Let me moduko Iak off " baina ez da egia-prozesu bat.
Eta orduan, egiten egiten da entzierro motela prozesu
ilaratan grabbing batetik bezala datu-basea edo artxibo bat irakurtzen. html
diskotik, izango da itzuli me baizik
da itxaron beharrik ni baino.
Beraz, hau argiagoa egiteko.
Hau da nire bide hau gehiago ezagutzen egiteko.
Ondo da, beraz, hau da, Astindu Shack plazan.
Honen moduko da paradigma komun
asynchronicity azaltzeko.
Hau da, benetan ona Adibidez delako Shake txabola
eta Sabrosas Burger dira nabarmen zer egiten motela.
Baina puntua da, ari dira benetan aginduak hartu ona
eta ondoren zure dirua hartu Hori zure janari zain zauden.
Beraz, hau da, benetan, hobea alternatiboak baino diseinu.
Suposatzen duelako oinez sartu duzu Hau bezalako denda bat eta zuk lortu
Lerroaren aurrean, eta zuk zure eskaera jarri eta nahi duzun
hanburgesa egiteko, I can onena gisa kontatzeko, gutxienez bost hartzen du
minutu edo gehiago behar benetan hanburgesa bat lortzeko.
Beraz, mota izango litzateke negozio-eredu txarra
baduzu zure zain zauden bitartean hanburgesa, Alice [bere gain hartu ortografia]
eta Bob [ortografia gain hartu] eta Charlie [bere gain hartu ortografia]
eta gainontzeko da atzean ilaran
eta literalki blokeatzen ari zaren lerroa zure janari zain.
Beraz, jakina, Shake txabola at
eta azkar beste janari lekuak ez hau,
honen antzeko zerbait egin dute.
Duzu buzzer ematen dute.
Eta sort dute bidaliko dizu zure bidean.
Eta deitu dute gauza txiki dardara hau egiteko
edo flash zure arreta lortzeko.
Beraz, hau da, hitzez hitz, zer?
Node.js antzeko zerbait egiten du.
Bada Node.js edo JavaScript oro har erabiltzen ari da
eta programatzailea da smart nahikoa
konturatzen, "Zer ezagutzen duzu?
Whatever eskuinera egin behar dut hemen zenbaki batzuk har lezake
milisegundotan edo segundo.
Badakizu zer?
Utzi aurretik, eta ez joan me sinkronikoki deitu -
"Duten tipo blokeatzea da Besteek ildotik, "-
utzi aurretik, joan eta Sort urrats alde batera utzi
eta, besterik gabe, neure burua deitu atzera
denean entzierro luze eragiketa burutu da. "
Eta deitu atzera ikastaroa da kasu honetan, aipamenak
callback funtzio batera, a kode chuck bat erreferentzia
duten exekutatu egingo dira denean zure hanburgesa prest dago,
askoz gauza hau bezalako batzuk izan funtzionalitate eraiki-mota
bibrazio hasten dela edo duzunean denbora da buzzing
deitu behar da atzera linearen aurrean.
Beraz, zer du honek termino errealetan, esan nahi du?
Beno, izan dugu gure bidean lan sortu.
Beraz, utzi aurrera eta hau egin lehen.
Zerbitzari-1.js, utzi nazazu Lehenengo kodea errazteko
beraz haurtxoa urrats hartu ahal izango dugu norabidean gehiago sinesgarria arazo bat.
Hau bera zehatza da programa hori idatzi nuen aurretik.
Baina zer aldatu egin da?
Han Sort arina desberdintasun sintaktikoak
honetan eta arteko 0 Duela une bat bertsio.
Zer joango at zuk gogoratzen duzu bada?
Yeah Cynthia [ortografia gain hartu]?
[Inaudible Oharra]
Bai. Beraz, gaur egun, lerro bat dugu funtzioa ari pasatu sartu
Dugu ahaztuak moduko kentzeko
of alferrik izeneko handler funtzio.
Bakarrik horretan alferrikakoa aurretik are deituz leku batean,
Ez dut Behar alferrik denbora da izen ematea
eta gogorragoa egiten goi irakurri behean.
Beraz, utzi deklaratzeko en besterik inline funtzioa anonimo bat da.
Eta bi gauza batzuen egiten ari naiz.
Hobea egiten ari naiz dot idazkera erabilera.
Beraz, jQuery, nodo asko bezala metodo kateatu daitezke elkarrekin.
Beraz Bukatutakoan behin deituz zerbait, ez duzu
lerro berri bat itxaron eta beste metodo bat deitzeko,
besterik kate ahal duzun elkarrekin.
Eta, beraz, modu honetan, ezin dugu benetan estutu hau sortu.
Beraz, hau da, hitzez hitz bat web bost lerrotan zerbitzaria
kodea Guztiaren ez bezala -
zer normalean dezakezu ez bezala zerbait ezartzeko sortu egin behar.
Joaten naiz zerbitzari sartu bada 2 orain, egin dezagun hau.
Zerbitzari 2 - Egia esan dezagun etorri zerbitzaria duten 2 itzuli.
Dezagun orain ireki async-0.js eta aurre arazo hori esku artean.
Beraz, lehenik eta behin, goazen Animatu eta irekia
Nabigatzailean async-0.js sortu.
Beraz async-0, let me joan atzera nabigatzailean.
Hit reload.
Eta, gaur egun, hau da, mota Akats mezua.
Hain zuzen ere, ikusten dut 500 bat Chrome inspector in.
Baina utzi zehazkiago me hello.txt eskatzeko.
Ados. Beraz, honek lan dirudi.
Beraz async-0.js ez duela dirudi zerbitzatzeko zerbait barra da.
Fitxategi lehenetsi babesa dauka.
Baina badut esplizituki hello.txt eskatzeko,
duten badirudi laguntzeko.
Zergatik da hori?
Beno, hemen zer pasatu dut
eta egin inplementatu web zerbitzari super sinple bat
duten erakusten du non asynchronicity baliagarria izan daiteke.
Eta hori abian jarri den honela.
Lehenik eta behin, erabiltzen dut HTTP modulua berriro,
baina, halaber, FS eta horrek Ziurrenik nabarmentzen?
CS, fitxategi-sisteman, oro har.
Ados fitxategi-sistema.
Hortik aurrera FS, fitxategi-sistema.
Ondo da, beraz, zer du horrek ematen dit?
Zerikusia funtzionalitate ohitu gainditu bezalako fitxategiak,
fitxategiak irekitzeko, idazten direktorioak, irakurtzen direktorioak
eta stuff mota hori guztia.
Beraz, gaur egun nabarituko, kode honetan aurretik bera da,
zerbitzarian sortzen, pasatzen funtzioa anonimo batean.
Hau da, mota arbitrarioa.
Hau ez da oso bati web zerbitzari seguru.
Izan ere, sartzeko, ezin duzu nire disko gogorrean gehienetan fitxategia edozein
edo zerbitzari en gogorrean kode hau exekutatzea gidatzeko
besterik blindly nagoelako duten noa suposatuz
har dena delakoa erabiltzailea URL eska.
Eta noa ipini dot rekin
beraz mugagabeko naiz seguru egoteko
esaten dena delakoa fitxategia ezin dute eskaria gutxienez Irteeran ditu
uneko direktorioan.
Noski, mehatxu bat da hemen.
'Causa badute ordez besteak beste, zer?
Bere bide, nolako aukera ditu: dela inguruan lan gehiegi.
Dot, dot, ezta?
Beraz, erabiltzaileak besterik ez bada jarri dot, dot URL batean, teorian,
lortzean hasiko zezaketen nire - eta esan pasahitza fitxategiak.
Beraz, hau ez da ekarri segurtatu behar da,
oso ekarri sinplea izan.
Beraz, hemen, aldagai bat daukat eta horrek dot lotuz da
gaur direktorioa da eta eskaera URL
eta hori da aurretik ikusi genuen bezalakoak barra edo / hello.txt.
Beraz, gaur egun, bat egingo du Apur interesgarriagoa.
Lehenik eta behin, nabarituko hondoan.
Dut entzuten ari naiz portu berean, orain arte bezala.
Beraz, benetako interesgarrienetako lanaren barruan hemen da.
Denbora bakoitzak eskaera bat dator naturak
Kode hau da, zer egiten ari naiz?
Fitxategia deitzen naiz sistemaren irakurritako fitxategia metodoa,
bidea pasatzen irakurri nahi dut.
Eta, gaur egun, hau da, zer da interesgarria hemen,
honen inplementazioa da Metodo asinkronoak dira.
Ezin duzu itzulera bat lortzeko Irakurritako fitxategitik balioa.
Izan ere abisua, ez da no ezkerreko espresio
Irakurritako fitxategia ezkerrean dagoen.
Ez du balio bat itzuli.
Hobeto esanda, callback bat deitzen da funtziona denean prest da
emateko atzera erantzun bat.
Beraz, berriro ere argi izan, antaño, berriz,
programazio askotan hizkuntzak, nahi baduzu
fitxategia kasu bat irakurri Puntu PHP,
fitxategia azpimarra lortu azpimarra edukiak,
ezkerreko adierazpen bat duzu balioa guztietan ondoren -
Berdintasun ikurraren aurretik, horrek esan nahi du esleitzea zaren
aldagai hori itzuli funtzio horren balioa.
Egin dezakezu Node.js in, baina normalean duzu
esplizituki sinkronoak deitzeko funtzio bertsioak gustatzen,
Uste dut irakurri sync fitxategia edo sync fitxategia irakurri.
Nola izendatu dute ahaztu dut.
Eta horrek emango luke duzu bueltan balio bat.
Baina fitxategi hori badago urruneko fitxategi-sistema batzuk
edo disko besterik naturalean motela da, 10 milisegundotan hartu izan da
edo 2 segundo, fitxategi horren benetan itzuli.
Bien bitartean, beste web no Bisitari zerbitzua ari dira
Zure web orrirako arabera.
Blokeatzen ari zaren.
Hori da, zer deitzen IO, sarrera / irteera blokeatzen.
Beraz, hemen, hau da, askoz smarter.
Zer Node.js joan delako
den interpretatzeko gainean egin da jarraian,
nik deitu joan Irakurritako fitxategia metodoa,
bat saiatu nor got-fitxategia sortu P. balioa zehaztutako bide bat
Eta gero, bada eta noiz prest da emateko atzera edukiak
fitxategia P du, deituko da horren sinadura da funtzio bat
konbentzio jarraituz.
Bi argumentu, lehena eta horrek agian Akatsa objektu bat da,
kapitala E, objektu bat da Akatsa edo nulua deitzen
hala nola, errorerik ez badago.
Eta bigarren argumentua - hartu etxebizitza bat - zer izango?
Honez datuak jakina deitu zion baina zer datu da konkretuki?
>> Edukiak?
>> Hello.txt edukiak adibidean dut bota
nire nabigatzailean sortu duela une bat.
Beraz, beste era batera esanda fitxategia irakurri eta asko Node.js funtzioak
bezalako at ez dute balio itzultzeko.
Atzeradeia deitu dute eta pasa
atzeradeia horiek zer egingo tradizionalki izan da
balioa itzultzeko.
Planteamendu honen hankaz da
duzula agian deitu irakurri fitxategia T0 bat.
Atzeradei funtzioa dezake tick bat geroago ez da deitzen
beraz, T hitz egiten, hura T1000 bat deitu daiteke,
mila bat ticks geroago.
Baina puntua da, fitxategi horretan kodearen gainerakoa,
bada edozein berehala egon Node.js bitartean exekutatu
eta berriz fitxategi sistema zifrak nola irakurri
fitxategi hori eta lor itzuli nahi duzun da.
Beraz, hau sortu duzu -
beraz, modu eraginkorrean ilusioa
paralelismo dezazun bitartean entzierro prozesuak motelagoa ez da
blokeatu gauza garrantzitsua, zatia erabiltzaileek zerbitzua dela.
Beraz, nola ez hau kudeatzeko dugu?
Hau da, oso ohikoa Node.js paradigma.
Eta ez dago modurik besterik errazteko hau da, ikusiko dugu lehenago ere.
Lehen egiaztatuko badut Error ez da nulua.
Beraz, ez da faltsua bada gero ez dago errore bat izan da.
Ez dakit zer dela, agian fitxategia ez da existitzen.
Ez nuen baimenik.
Bide okerra da.
Gauzen edozein zenbaki gaizki joan izan.
Oraingoz, noa arbitrarioki itzuliko 500
Horrek zerbitzariaren barruko errore da.
Zerbait gaizki joan da.
Ez dut benetan axola I hura diagnostikatzeko.
Beraz, utzi kontatu besterik en erabiltzaileari hautsi du.
Eta, gero, egingo dut res.end egin ahal izateko,
eta hau takigrafia idazkera da.
Gogoratzen duten azken denbora res.write egin nuen
eta ondoren res.end egin nuen.
Besterik nahi ez baduzu irteera lerro bat bidaltzeko,
besterik egin dezakezu guztiak aldi berean argumentuekin res.end batera,
eta hori bidali joan Akats mezua da, edozein dela ere
Objektu honen barruan nabigatzaileak.
Nahiko arkurik zen gogoratzen duela une bat.
Ideia ez dut zer hau Lehen begiratuan ekarri.
Baina bat eskatu dut existitzen ez dela fitxategia -
trabatzen, exekutatu behar dugu zerbitzaria berriro.
Artxibategi bat eskatu dut existitzen ez dela, EISDIR,
beraz, zerbait directory izatea da,
ausazko batzuk egin badut kate han,
itxuraz horrek esan nahi du fitxategia esistitzen ere ez.
Eta hori da delako nire kodea da, besterik gabe, idazteko esanez
edozein dela ere Raw kanpo Errore mezua da,
beraz, ez da oso lagungarri baina, gutxienez, hura manipulatzea naiz.
Bestela, ez bada kontuan error zer egiten ari naiz?
Gauza bera Spit lehen bezala 200 OK bat, lautadan bat -
testu / laua mind mota eta ondoren txu datuekin.
Eta horregatik dut lortzean du hello.txt edukiak besterik
I begiratu balitz baieztatzeko hello.txt at,
literalki da bakarrik kaixo, mundua.
Eta hau aldatuz gero kaixo, mundua, gorde fitxategia,
saioan zerbitzariari, orria berriz kargatzea.
Orain, bertsio hori lortu dut.
Beraz, benetan besterik ez dut web zerbitzari bat reimplemented
gisa da askotan existitu urte baina node.js. erabiliz
Baina hori egin ahal izango dugu are gehiago garbian.
Ireki me async-1.js.
Orain, konturatu naiz batu moduluaren beste denbora honetan,
itxuraz bidea modulua.
Orain, hau ona da begiratzeko aukera
zer dokumentazio ekarri itxura.
Node.js dokumentazioa da.
PHP bezala pentsatzen dut egia esan, nahiko ona
eta sinplean.
Joan naiz Node.js eta Google bada eta bilatu Node.js bidea egiteko,
zer normalean ikusiko duzu URL bat lotura zuzena da
gora jarri dut hemen, duela une bat.
Beraz / api leku ofiziala da dokumentazioari joan.
Eta zer goialdean ikusiko dituzu
nodoaren dokumentazio ofizialaren da metodo guztiak eta
edo barruan jabetzak modulu zehatz honetan,
horietako bat deitzen da batu.
Eta batu helper funtzioa da hori me ahalbidetuko joan
ez kezkatu pluses guztiak.
Eta du gehitutako bonus ikusiko duzun bezala
kai batetik ere bada ondorioz bidea normalizes.
Beraz, erabiltzaileak edo baduzu dituzte puntuak edo dot puntu edo edozein konbinazio
erlatibo mota horiek bideak, upsides artean
fitxatu metodoa dela nik hori guztia garbitu gora
eta kanonikoak bat emango dizu gabe bidea
puntu horiek edo dot puntu.
Beraz, gauza ona da gutxienez segurtasun orokorrari
baduzu markatuz ari itzultzeko, balio horrek ez naiz
kasu sinple zehatz honetan.
Baina nahi nuen erabili.
Beraz, gaur egun, bide bat sortu dut apur bat gehiago programazioaren
path.join ordez lotuz Raw neurtzen.
Beraz, hori da apur bat lehen baino garbiagoa.
Eta orain konturatu bat naizela apur bat gehiago adimentsua baizik
besterik blindly baino saiatu fitxategia irakurri,
Noa benetan deitu fs.stat.
Beraz, Oraindik ezagutzen bada
C behe-mailako funtzioak eta C, nahiz eta PHP.
Liburutegiak asko izan Funtzio hau stat itzultzen
funtsean estatistikak fitxategi batean, fitxategi-tamaina,
baimenak, izena eta horrelako gauzak,
eta, halaber, inplizituki bada fitxategia badagoela edo ez,
eta fitxategi edo direktorio bada
edo esteka sinboliko edo beste zerbait.
Beraz, orain konturatu, naiz fs.stat deituz.
Eta arabera, ondoren, itxuraz dokumentazioa,
Itzuli behar dut Akatsa objektu batean
edo nulua jarraitu estatistikak objektu batek.
Baina dezagun begiratu hau, node.js.fs.
Hemen fitxategia da sistemaren dokumentazioa.
Ikus dezagun estatistikak niretzat.
Ez dago askoz gehiago da Hemen funtzioak.
Ene, stat sync duten, fs.stat.
Beraz, hemen, asinkronoak da estatistikak (2).
Hori da esan nahi baduzu orriak nagusitik gogoratu,
2 kapitulua orri nagusia,
horrek esan nahi du, hau da, hitzez hitz besterik nodo bat ezartzeko
behe-mailako sistemak stat.
Beraz, callback bi lortzen argumentuak, error eta estatistika
non stat da fs.stats oposiziorako.
Hargatik ikusi zer objektu hau suposatzen da itxura.
Dezagun sakatu hiperesteka eta hori ikusten dut.
Estatistikak objektuaren dauka itxuraz helper metodo batzuk,
fitxategia da, direktorioa da, da beste gauza mordo bat.
Da fitxategia "da" duten zait axola jendeak Kasu zehatz honetan buruz.
Beraz, hemen dut.
Errorea gertatu da bada, orduan utzi fidantza besterik ez dit denbora honetan
eta bere gain hartuko.
Akats bat gertatu bada, hura zen Ziurrenik 404 fitxategi batean ez da aurkitu.
Beste zerbait izan zitekeen
baina apur bat naizela alferrak hemen besterik zentratu
xehetasunak ere interesgarri da.
Baina Erabiltzaileen egiteko helburuekin, fitxategia aurkitzen ez bada,
akatsen ez zen bada fitxategia adieraziz.
Bestela, utzi niri begiratu balitz du fitxategia da, hain zuzen, benetako fitxategi bat.
Beraz, ez da bat bada fitxategia, existitzen.
Zerbait ez dago baina seguruenik direktorio bat
edo agian link sinbolikoa
edo beste zerbait hori da fitxategia sisteman funky.
Dena den, erabiltzaileak ez behar ikusi.
Beraz, gaur egun, besterik ez dut txu joan
konbentzionalki itzazu baimenik gabe 403.
Baina, berriro ere hitzarmen bat besterik ez,
I erabil zitekeen beste zerbait teorian.
Eta gero, azkenik, let me saiatu fitxategia irakurri.
Beraz, utzi behera joan me.
Eta orain konturatu hau da, non kodearen nahasiagoak lor daiteke,
nabarituko deituz naiz duten I fs.readFile joana
bide berean, bera Atzeradei azken gisa denbora,
beraz, aurreko bertsioa.
Eta gero, bada ez nuen aurkitu -
ez badut aurkitu, Txu 500 daudelarik dut.
Eta nik aurkitu ez bada, zer linea ari gara hemen ikusteko?
Fs ikustera goaz goiburua 200 idatzi seguruenik
eta res.end bat bidaliz benetako datuak.
Baina nabarituko honetan.
Eta hau ez da erakusgarri uste txarrenean ere.
Baina stat deiak hau daukat Hemen gauza batzuk ditut baino.
Ondoren, beste bat izan dut dei asinkrono hemen,
koska beraz gehiago.
Beraz, besterik ez mota estrapolatu hemendik ezin izan baduzu.
Zer arazo gerta ohi JavaScript bezalako hizkuntzan
ingurune honetan non ez duzu itzulera balio dute
baizik duzu atzeradeia horiek.
Eta, jakina, hori besterik ez Gauza estilistiko bat, hain zuzen,
koskatze mantentzen dut.
Baina hartu hau egiteko logikoa hurrengo pausoa.
Demagun ez dago bat edo ziren Beste bi edo hiru funtzio
duten exekutatu behar dut natura asinkronoek ziren,
eta, beraz, besterik ez mota mantentzeko horiek kudeatzeko koskatze,
horiek kudeatzeko, horiek kudeatzeko.
Callback moduko lortuko duzu infernua pertsona gisa deitu
non zure kodea hasten Oso zabala lortu
eta Egia benetan zaila irakurri.
Denez, ordenatzeko apenas ezin dut esango hori sort-fluxua da
duten moduko hau dauka
of estilistikoki angeluarekin Gauza da hemen.
Beraz, hau ez da aproposa delako hau oso azkar bihurtu
unwieldy, nahiz eta bi asinkronoak ez deiak
hala nola, big aurre.
Beraz, hori saihestu ahal izan genuen, ezta?
Dezakezu glimpsed dute Duela momentu bat misclicked dut.
Dokumentazioa, badakizu, badirudi han bezala statSync da.
Eta statSync ez hartu callback bat argumentu gisa.
Besterik bidea hartzen duelako itxuraz ez da zer?
Instantzia bat itzultzen du fs.stats neurtzen.
Beraz, hau izan daiteke zure lehen sena, ezta?
Batez ere, callback funtzioak
eta asynchronicity da bat te berria little, Egia,
Planteamendu errazena da ziurrenik besterik saihesteko arazoa guztiak
elkarrekin, itzuli ordenatzeko CS101 estilo programazioaren
non funtzioa deitu edo metodoa, balioa ematen du,
deitu funtzioa, itzultzen balioa,
funtzioa, balioa ematen du.
Eta, beraz, erabili izan dut fs.statSync
hau da, hitzez hitz bera baina sinkronoak bertsio bat da
horrek esan nahi du itzultzen balioa.
Ez du gainditu batean callback batetara baloratzen.
Baina zergatik litzateke ziurrenik izan hoberenak ez diren sahiesteko jotzea
funtzio sinkronoak izateko?
Bai?
[Inaudible Oharra]
Zehazki, denbora luzea igarotzen da.
Duzu besterik geldotzen ari dena behera.
Delako askoz Shake txabola bezala edo Sabrosas Burger, dute got deusezten bada
buzzers horiek eta egin duzu, bezeroaren aurrean stand
Zure janaria prest dago lerro arte are gehiago, ordena hartu aurretik
pertsonaren atzean ez, jakina,
put bidez moteldu.
Jende hasteko utziz, Sort marraztu pakete.
Edozein zenbaki egin dezakezu hemen analogiak.
Baina azken finean, ez da Ziurrenik ez da gauza ona
negozioa edo zerbitzariarentzat.
Beraz asinkronoak kodea da normalean ona da gutxienez
kasu honetan, baina, zalantzarik larrimina sor hasten.
Eta hain zuzen ere, esaten denean ausartzen naiz Lehenengo gauza hau idazten,
Pixka bat hartuko du erabiltzen ohitu ere pixka.
Beraz, dezagun hasteko hornitzea liburutegiak batzuekin duzu
teknikak eta egiteko hau apur bat errazagoa.
Beraz, ohikoena bat liburutegiak popular liburutegiak dira
egun hauetan, hau async.js izeneko bat.
Eta Node.js asko bezala liburutegi edo modulu,
horiek dira guztiak kode irekiko.
Ia guztiak bizi dira eta lortu hub repositories hau da, mota
bihurtu de facto kokatzeko gauza horiek gordetzeko.
Eta ondoren, ez da bat azpiegitura osoa
Gauza horiek instalatzeko NPM, Nodoa Package Manager izeneko
horrek Oraindik ezagutzen bada rekin EvanTube da, mota
bezalako aplikazio edo aplikazioa lortzeko.
Oraindik ezagutzen bada Red Hat eta Fedora rekin
aparatuaren gisa, bezalakoa da yum.
Baina nodo bat da - da Pakete kudeatzaile bat besterik
ingurune zehatz honetan.
Beraz, deskargatu eta instalatu dezakegu async liburutegia bezalako gauzak
eta, gainera, beste bat deitu azpimarra liburutegi edo modulu.
Baina, orain arte bezala fs horiek, HTTP, bidea,
dira guztiak etorri horiek nodo eraikia.
Joan hala bada API docs nahi dugu, benetan duzu ikusten duten eraiki
nodo sartu doan lortuko duzu modulu sorta osoa.
Baina polita jende ugari on Interneten dozenaka egin dute
ez bada ehunka beste liburutegi
gauzak hobeto egin edo ezberdinean.
Beraz, dezagun begirada bat liburutegia nola obra honetan.
Beraz, kode hau gehiena da oraingoz berdina.
Bidea izateaz daukat sortu sortu top.
Eta orain deitzen naiz async.series.
Beraz async liburutegian, hura da liburutegi bat besterik ez duten aukera ematen dizu
pasatzeko edo goratzeko normalean get one izenekoa funtzioak
besterik mota bestearen atzetik koska gai hori saihesteko,
eta benetan besterik psikikoan larrimina beti sortzen dira
gutxienez aurreneko duzu murgiltze zure kabuz honetara
programazio asinkronoki batera.
Alde batera, eta hartu baduzu gisa 161 eta duzun landu sarrailak
eta baldintza guztiak eta goratzen duten, asinkronoak kode
eta antzeko ingurune bat Node.js da, benetan, askoz,
dudarik gabe, askoz errazagoa
benetan idazten baino multithreaded kodea.
Edonoiz duzu multithreaded kodea,
Goratu baldintza daukazu.
Kezkatu behar duzu duten bi hariak
baliabide berak eman Disko edo memoria.
JavaScript edertasuna
Node.js da ez da literalki hari bat, bakarra
Horrek nabigatzailea esan nahi
edo zerbitzariari can only egin gauza bat aldi berean.
Da besterik ez duzu, gehienez, programatzailea
mental eredu bat mantendu ahal izateko nola sort ilaran duzu gauzak
eta irudikatu nola Zure kodea eskatzeko.
Baina inoiz ez duzu kezkatu buruzko baldintza goratzeko
at Era berean, nahiko Hau atsegin kodea osoz gutxienez.
Beraz, pixka bat da Gogor hemen grack izateko.
Baina - Hargatik ireki me une bat besterik ez docs.
Async.js liburutegian bertan era berean, oso googleable,
bizi da GitHub batean Horietako asko bezala repot.
Ez dut uste da sketchy, ez da.
Behera joan me Irakurri Me hemen.
Beraz, async liburutegian sorta osoa eskaintzen du
barruan metodoak.
Esate baterako, ez da bakoitzaren izeneko metodo bat,
horrek hau sakatu badut besterik bere docs ikusteko une batez,
honek funtzio bat edo metodoa da duten zerbait egiteko aukera ematen du
lau batean bakoitza bezalako baina paraleloan.
Guztiak ari dira gertatuko potentzialki paraleloan.
Eta metodoa bakoitzeko da soilik nahi duzu itzultzeko joan denean denak
iterazioak amaitu.
Beraz, agian gertatuko dira bat bestearen atzetik.
Haien, gertatuko dira funtsean paraleloan.
Baina metodoa ez du deitu atzera.
Ez du buzz zure buzzer guztiak arte
duzu elementuetako iterated baino gehiago izan dira amaitu.
Beraz, modu polit bat besterik ez da
erabiliz saihesteko lau begizta sinple bat
baina benetan egiten zerbait asinkronoki.
Baina orain gehiago zuzenean Adibide honetan zerikusia,
nabarituko han da hau serie metodoa.
Eta utzi tira besterik me up batean sinple kanonikoak adibidez.
Beraz async liburutegiak, serie metodoa hartzen engaiatuko gisa
array kortxete bidez.
Zer dira datuen elementu mota
array honetan oinarritutako in adibide erraz batean?
Honen funtzioak array bat da.
Beraz, C, deitu nahi duzun erakusleak funtziona dezaten.
JavaScript, badira gehiago ongi funtzio erreferentziak
edo funtzio anonimoak.
Eta hori esan nahi, arrayak
ikastaro antolatzen dira zerotik sortu da.
Beraz, mantentzen dute eskaera bat eta hori ona
serie bat egiteko, 'kausa serie jakina bitarteko zerbait egin
ordena ez paraleloan.
Beraz, hau, besterik gabe esan nahi du, hau funtzioa exekutatu egingo dira,
gero, hau, ondoren, hau bat, hau, gero, hau,
Hala ere, asko dira
azkenik, aukerako arte callback deritzo.
Beraz, konturatu paradigma hemen.
Eta nahiz eta hau guy bat liburutegia da,
ordezkari da JavaScript paradigma oso ohikoa
of berriro atzeradeia erabiliz.
Beraz, konturatu hemen zer egiten duzu.
Lehen funtzioa izateaz pasa in array honen bidez,
anonimo bat definitzen duzunean funtzioa besterik funtzioa.
Baina oharra itxuraz dokumentazio horren arabera,
Funtzio anonimoak duten egin beharko lukete Argumentu callback hartzeko.
Hori erakuslea izango da edo funtzio bat erreferentzia
denean zure deitu behar duzu kodea balio bat itzultzeko prest dago.
Beraz, berriro ere, besterik ez bezala normalean prozedurazko programazioa
non zauden erabiltzen berehala balioak itzuli
duten ezberdintasuna bat hau bezalako liburutegi bat erabiliz
programazio asinkronoak gehiago oro har, ez da prest zaudenean
balio bat itzultzeko hasita datu-base batean, fitxategi batetik,
aritmetika batetik adierazpen, da sortu nahi duzun
Atzeradei funtzioa deitzeko.
Eta gauza polita liburutegi honi buruz
docs irakurri badugu gehiago arretaz dela,
bada eta bakarrik bada guztien izeneko atzeradeia area
Akatsa objektu bat gabe, egingo gauza osoa arrakasta?
Beraz, beste era batera esanda, Han 2 badira,
daude 10 anonimoak bada funtzioak
array honetan, beraz, Serie honetan,
denak arrakasta besterik ez bada,
aukerakoa final callback izango izan dira arrakasta?
Bada, horietako inor , funtzio guztietan huts
ez da ondoren are exekutatu behar.
Beraz, ordenatzeko modu polit bat da of bitxilorea kate bat izatea
duten errendatzea bertan abortatu behar baino lehenago zerbait oker joan ezkero.
Beraz, hau ikusteko testuinguruan, hemen da nola dugu agian berriro ezartzea
aurreko programa hori.
Bidea lortu dut orain arte bezala, beraz, honen zatia da erraza.
Itsatsi hezurdura kode hau kopiatu dut
dokumentazioa hortik async.series parentesi irekiak,
ireki kortxetea.
Eta orain konturatu bat daukat Hastapen honen funtzioa
segundo baten, ikusiko dugu non honetatik goaz.
Eta orain, nabarituko, da hasiera batean konplexu apur
baina zentratu besterik on lineaz linea da.
Fs.stat esan nahi estatistikak lortzeko edo zer ez bide hori.
Deitu atzeradei hau denean prest.
Kode hau aurretik bera da.
Akats bat gertatu bada, ez dago diferentzia bat da gaur egun.
Berriz ere, paradigma oso ohikoa Node.js programazioan da
zerbait oker joan ezkero eta callback bat jakin behar du
konbentzio, lehen hori callback argumentu va
ez izan, denak bada ondo edo bat Akatsa objektu bati erreferentzia,
kapitala E. da Akatsa bat bezalakoa da existitzen orokorrean klase
baina gehiago beste denbora batzuk.
Beraz, hau eginez, ez da bada bat error, zer inplikazio?
Ongi oinarritutako dudana on esan serie du,
da ezer joan ezkero gaizki, besterik ez mota nahi dugun
sortako abortatzeko funtzioaren anonimoak deiak.
Beraz, niretzat nahikoa da return callback joana
Akatsa objektu batean.
Delako stat eman bada me back errore bat,
Berri bat sortu izan dut Error nire objektu,
baina ez dut benetan axola,
Besterik pasatzeko nahi dut edozein error da, benetan gertatuko
beraz, I gainditu ahal callback honetarako.
Eta besterik ez, argi eta garbi izan, bueltan ez da erabat beharrezkoa.
Funtsean, hori egin nahi dut baina orain ez "itzuli nahi izan nuen;
/ / Eta horrela gehiago ez Hemen kodea exekutatzen ".
Beraz, berriro ere, beste komun JavaScript konbentzio,
Oraindik ere ez balio bat itzuli per se,
balioa gainditu nahi duzun Atzeradei funtzioa
baina, ondoren, nahi duzun exekuzioa gelditzeko
funtzioa Oraindik of urtean, trivial modu
hori egin ahal izateko besterik ez da deitu itzuli hona.
Baina ez dago ezer gaizki,
besterik bueltan callback ari gara egiten error egingo da, nahiz
nahi undefined balioa itzultzeko.
Ondo da, horrek ez du itzultzeko ziurrenik balio bat.
Guztiak buruz zaintzen dut bat exekuzioa gehiago igo.
Beraz, nire hauen conflation bi lerro estilista bat besterik ez da
konbentzio besterik nahi lerro-kopurua izan
kode idatzi dut 2tik 1.
Beraz, zer gehiago?
Han ez bada errore bat -
benetan argi izan Era berean, ezin dut saihestu
duten beste badu eginez.
Baina, berriro ere, beste paradigma komun txeke da
Zure akatsen, goian eta gero return baino jarraituko
zure kodea koskatzeko elses eta elses eta elses.
Beraz, ez da bat bada fitxategia, gaur egun, badakizu,
Hau kudeatzeko nahi dut apur bat bereziki.
Beraz, hemen Java edo C + + bezalakoa edo beste hizkuntza gutxi batzuk,
hemen bat nola instantziatu daitezke oposiziorako error joana idatzi
Mezu lehenetsi batean eremu ez-fitxategi batean
eta hau besterik ez zertxobait arbitrarioa da.
Baina seinaleztapen naiz nire errore bat.
Eta zer ez, azken hau line zentzuzkoa adierazteko?
Guztiak ondo dago.
Pasatzen duzu nulua bada egiteko error parametroa, hori besterik ez du esan nahi
konbentzio guztiak ongi da.
Beraz, horrek esan nahi du zer logikoki gertatuko da?
Null gainditu badago callback joan
duten anonimo horrek esan nahi du funtzioa du arrakastarik
nolabait esateko.
Beraz, zer serie hori behar du Metodo aurretik eta orain ez oinarritutako
nire hitzezko definizioa lehenago?
[Inaudible Oharra]
Mugitu hurrengo bat, ezta?
Ez nulua bat izan da itzuli bada balioa, besterik ez litzateke abortatzeko
eta ez gehiago anonimoak funtzioa ezagutu izeneko litzateke.
Baina delako ez, gero hurrengo hau deitu egingo dira.
Beraz, hemen logika da pretty askoz ere gauza bera orain arte bezala
eta nola garbitzen ikusiko dugu hau up gehiago une batean.
Konturatzen naiz, hau da, asko mota
guztiak hitzez xurgatzeko eta ikusmen.
Baina orain konturatu, bigarrenean Funtzio anonimoak duten nahi dut
den seriean exekutatu da fitxategia irakurri saiatzeko.
Deitu callback honetan denean prest zaude.
Akats bat izanez gero, besterik gabe seinalea da callback modu
beraz, gainerako stuff hau errendatzea bertan abortatu.
Bestela bueltan nulua.
Baina zer diot pasatuz Bi argumentu batean?
Beno, denbora honetan irakurri badut fitxategia eta lortu atzera
datuak deitu bezain aldagai bat,
Ez bakarrik adierazten nahi dut guztiak ondo null itzuli
Lehen argumentua da.
Benetako itzuli nahi dut Datu bigarren argumentu bezala.
Delako gehiago irakurri badut dokumentazioa,
kode azken zatia hau nabarituko kortxetea esan nahi da
liga amaieran.
Ez ziren bakarrik bi anonimo Serie honetan funtzioak.
Akats bat izan zen hemen, bada, orduan Dakit estekak bat
kate honetan hain nolabait esateko huts egin.
Beraz, beste era batera esanda, akats hau Akatsa da objektu bat izango da joan
dela nulua baldin badago duen mutil hauek huts egin.
Eta hori horrela bada, besterik ez naiz fidantza eta joan noa
400 esan zein esan nahi du eskaera huts,
hori da oso generikoak errore mezua.
Eta gero, ez naiz joan inprimatu errore mezua.
Beraz, ez dut bothering be super anal une honetan,
Ez dut bereizten joan 500 eta 404 eta 403 urteen artean,
Mota besterik ez naiz blindly olatuen nire eskua
eta esan zerbait gaizki joan da.
Baina ez da ezer egin bada okertuko,
Hau bidali nahi dut res.end Datu horiek pasatuz.
Orain hau itxura apur bat zailago.
Baina irakurri nuen berriro bada dokumentazioa,
bigarren argumentua final, final atzeradei hau,
tipo hori bakarrik exekutatu behin serieak egiten da
exekutatzean edo zati bat bertan du, hau da array bat izango da joan
Bigarren argudio guztien
dela onartu ziren callback da.
Orain, bihurtzen da hori Bakarrik sail honetan lotzen
benetan bigarren itzuli Argumentu hau da hemen.
Naiz, beraz of ordenatzeko bat joan fede-jauzi besterik gabe erabili demagun
oraingoz horretan ko metodo bat da
ematen dizu azkena Matrize bateko elementu.
Delako array honetan gainditu ari
niri bi indicies ditu, zero eta bat.
Da zero besterik ez du baliorik tipo hau itzultzen duelako -
ez bigarren bat gainditu argumentua baina tipo hau egiten duena.
Beraz, emaitzak parentesi zero deus,
emaitzak parentesi bat zer dauka,
Duzun egin bada Puntu honetan, gehienez batera?
Fitxategia, kaixo, mundu edukia zentzuzkoa,
beraz, nola dut benetan inprimatu.
Eta utzi nau amaitzeko detaile bat hemen.
Zahar moduko hau egin badut eskola, lortu nahi badut
azken elementu berean, ahal izango banu egin emaitzak [results.length-1],
hori da honen moduko eskola bide zaharra
azken elementuak sartzeko - edo zero indizea array.
Baina aldean bezala, gogoratzen liburutegi hau izan dut
hemen bertan azpimarra arabera konbentzio besterik deritzo
literalki azpimarraz pertsonaia hori ez da berezia,
itxura besterik ez da cool dolarraren ikurra jQuery eman du.
Honetan laguntzaile bat besterik ez da metodo azpimarra dot azken
eta horrela, ez da zehatz-mehatz gauza bera.
Eta inoiz erabili ez bada aurretik azpimarra JS biak
bezero alboko kodifikazioa egiteko
eta zerbitzariaren aldeko da bat liburutegi wonderfully erabilgarria
deskribatzen duen jende askok gustatzen jQuery dauka guztiak
metodo, jendeak nahi Ikusteko Javascript-a berez etorri zen.
Ados.
>> Beraz, niri nahiko atsegin eta Serie aurrean nengoen,
callback atsegin duzu argumentu gisa?
>> Bai.
>> Like so duzunean benetan bultza duten bezala,
eta zer egiten duen bezala esan nahi denean, aski izango duzu
bezalako Atzeradei eta ondoren egin bezala -
[Inaudible Oharra]
>> Ados, galdera ona.
Beraz, utzi tira me da async orri nagusia hemen
edo GetHub buruzko dokumentazioa.
Beraz, hau kanonikoa da egitura.
Zu dei hau erabiltzen bada bereziki metodo seriea,
bertan bi zati handi dago.
Bat array bat da funtzio anonimoen
eta bi final callback da Funtzio hori da benetan
oso exekutatzen liga amaieran.
Orain, Txikiagotzeko dugu batean bada Apur lehen on hurbilago
gauza handi horiek, izan funtzio anonimoen array
honen baldintza arabera Guy dokumentazioa ditu
anonimo bat izan nahi du hori hartzen du funtzio
argumentua deitzen callback batean edo foo edo bar, ez du axola
baina da callback deituz zuen.
Eta hau zure buzzer moduko da Shake txabola duten eskuak duzu.
Hau bide da, zeinaren bidez balio bat itzuli dezakezu
bezeroari duzulako ezin besterik ez literalki itzuli.
Da egin behar duzu callback honen bidea.
Delako honen barruan bada funtzio motela entzierro batzuk
kontsulta database bezalako kodea, irakurri fitxategia sistemako fitxategia,
ez duzu han itxaron nahi eta gainontzeko guztiak blokeatu,
callback deitu nahi duzu.
Beraz, hau da, hitzez hitz argumentua izenarekin.
Baina C gustatzen, zuk funtzioa erakusle izan.
Java duzu erreferentzia sistema metodoak
Eta Ikusteko Javascript-a hemen bera.
Honen aldagai bat da, baina bere motako funtzioa da.
Beraz, besterik gabe, bere izena idatziz ala callback bat edo foo
edo taberna, ondoren parentesi irekiak eta itxi parentesia,
duzun exekutatzen ari funtzio horretan.
Eta nulua bat igaro eta horrek esan nahi null error eta bat
horrek esan nahi du, hau da, horretan sartu gainditu nahi ditut datuak
Eta gero zatia argi izan, hau callback bat da.
Eta ez da callback izeneko,
hura besterik ez kontzeptualki da bat callback Metodo funtzioa
deitzen da, zeren definizioz
egile honen ondare bibliografiko denean serie osoa bukatu du
edo kontratuan azpimultzoa bat bada error lehenago gertatu da.
Beraz, callback funtzioaren izena, Atzeradei funtzioa deituz,
Atzeradei funtzioa izendatzeko, Atzeradei funtzioa deituz,
callback ezberdinak funtziona guztiak elkarrekin.
>> Orain bezala daukagu definitzeko callback?
>> Ez, delako tipo hau egingo zure array sartu pasatzeko
funtzio anonimoak,
kodearen erakuslea exekutatu nahi du.
Zehazki, guztiak eskuineko.
Beraz, mesedez, esan du kodea, apur bat errazagoa lortzen.
Beraz, izan daiteke.
Eta ni bezalako baduzu, hartu gutxienez ezagutzeko erosotasuna,
pixka bat hartzen da erabili hau ezagutu.
Baina garbitu ahal izango dugun bit pixka bat gora,
gehiegi ez bota at duzu baina hemen aldakuntza bat da
eta bere beste metodo bat erabiliz
liburutegi berean Ur-jauzi deritzo.
Horietatik hankaz da seriea ez bezala non bakoitzak
anonimo horien funtzio exekutatu funtsean
independentean beste batzuk, bakoitzaren.
Izenak iradoki bezala waterfall uppermost funtzioak ahalbidetzen
mota gainditu baloreetan Beheko funtzioa,
Sort gustatzen ur-jauzi bat.
Beraz honen hankaz mota da, ahal dudan
erabili hau nire abantaila.
Async.waterfall in, honako hauek nabarituko.
Besterik ez dut deitu ahal fs.stat bidea pasatzen
lortu nahi duten I buruzko estatistikak.
Eta, ondoren, I aurretik gogoratu funtzioa anonimo bat izan zuen
zuela bi argumentu err,
esults eta orduan deitu nuen Atzeradei funtzioa eskuz?
Beste hitza besterik ez da izan argia, gogoratzen duten lehenago
async 2, guztiak egin nuen gaizto lan honen.
Deitzen dut fs.stat P gainditu,
nire anonimoak egin deklaratu funtzioa.
Ondoren, egiaztatu nuen error bada ez nulua orduan hau egin nuen,
bestela, osoa egin nuen ohituretara egokitzeko edertasuna
bezalako Node.js in callback dela orokorrean funtzio dira ekarri
gutxienez argumentu bat hartzeko, Akatsa objektu bat zero jarraian
edo balio gehiago erabilgarria.
Beraz nabarituko paradigma hemen,
callback funtzio hori naiz deklaratzen jarraitzen zehazki
paradigma duten tipo hau en async liburutegia du.
Hau da hau esatea, zergatik am Nire callback propioa ezartzeko dut
Metodo denean honen egilea liburutegi me literalki gozamenerako
platter bat nolabait esateko, bat Atzeradei funtzioa erabili ahal izango dut?
Beraz, besterik ez dut gainditu ahal erreferentzia, baina eman dit
beraz, berehala, Nire hainbat lineak
kode kode-lerro bat bihurtu da.
Orain, nora honekin joaten gara?
Hurrengo funtzioa Exekutatu nahi dut,
hurrengo anonimoa array honetan funtzio
funtzioak honako hau egiten du.
Oharra lehen stat da lehen argumentua.
Beraz, zerbait du Dagoeneko aldatu.
Orain, tipo hau nor liburutegian idatzi -
eta lasaia esaten dut tipo bat delako.
Tipo hau liburutegi hau, nork idatzi dokumentazioa bermeak da
duten bada funtzio hau hemen pasatzen me back Akatsa objektu bat
edo nulua koman jarraian bereizitako beste balio-zerrenda,
ziurtatu zuen egingo egin dutenen beste balio handed dira
Funtzio anonimoak honetara ezkerretik eskuinera ordena.
Eta besterik gabe bat izan zer Atzeradei funtzioa bakarrik, besterik gabe
esaterako, azken argudio bilakatzen da.
Orain, ez dakit nor naiz bideratua on besterik ez duzu ezagutzen.
Baina orain, zer da kentzen hemen?
Beraz, ezagutzen dugun dokumentazioa
edo aldez aurretik adibide pare
fs.stat, azken finean espero bi argumentu eta callback bat,
Akatsa da objektu hau da, bat Error objektu edo nulua jarraitu
erreferentzia bat eginda estatistikak oposiziorako.
Beraz, uste dut horri buruz bada, Error objektu koman estatistikak objektu,
duen paradigma egokitzen pertsona hau ondare bibliografiko.
Beraz, besterik gabe esan dezaket delako Ez dut bigarren argumentua
egiten da hori - hori gertatzen ra fs.stat onartuz
callback to err da, estatistikak liburutegi honen definizioz,
Bigarrena jarri ahal izango dut Argumentu izena hemen
edo dena dut izena alda diezaiokezu
jarraitu nahi badut callback hemen eginda.
Beraz, bat gainditu ahal dut hemendik baloratzen hemen.
Orain, kode hori guztia nahiz admittedly pixka bat zailago da
gutxienez itsatsi kopiatzeko aurretik zati handiena.
Alde bakarra da abisua hemen geratuko naiz Akatsa bat
objektu eta orain nahi dut apur bat fancier lortzeko.
Benetan dut jakin nahi zer error zen, beraz, egingo dut
objektu bat honen barruan Tuck jabetza arbitrarioki kodea izeneko
horrela ezagutzen dut hau ez da fitxategi bat
duen baimenik gabe egon behar du, HTTP bat 403 da.
Let me gogoratu aurretik Akatsa objektuaren pasatzen dut
callback da.
Eta gero, azkenik saiatzeko irakurri fitxategia, beraz, kasu honetan,
jauzia, nik hautsi dut Bi urrats handi kodearen
Hiru urrats txikiagoetan banatzen.
Nabarituko edertasuna hemen,
Dezaket fs.readFile deitu bidea pasatzen.
Eta, ondoren, zati gogorra adimen, da pasatzen dut
zentzuduna en callback in.
Gauza me lortu berri ematea, naiz ra fs.readFile pasatzen joatea.
Dugu guztiak atxikitzea ari delako konbentzio beraren aldean,
callback batera lehen argumentua da Akatsa jarraian objektu bat edo nulua
koman edo bereizita stuff erabilgarria zerrenda.
Beraz, zer esan nahi duen gaur egun, eta badut dokumentazioa ezagutzen dut irakurri
hau, oso azken callback, tipo hori hemendik kanpo
parentesi karratu va Akatsa objektu beharreko gainditu
edo nulua den egiaztatu behar dut beti bezala kode hau hemen.
Eta gero, definizioz Metodo honen
zentzuduna en agiritan, azken balioa itzuli
azken metodo etik nire array anonimoak in -
nire funtzio anonimoen array.
Beraz, zer ez irakurri fitxategia bueltan
eta itzulera bat erabiltzen dut baziren orain.
Zer ez irakurri esan nahi dut fitxategia pass argudio gisa
callback metodoa bere eskuko?
Bi argumentu, lehenengoa da Akatsa objektu bat edo nulua,
hori da ia beti erantzuna izango da.
Eta bigarren gauza da joan zer irakurritako fitxategia izango?
Fitxategiaren edukia, datuen lehenago deitzen dugun bezala.
Beraz, besterik gabe geratuko err, ondorioz,
eta akats hori egiaztatzeko sort orain aspergarria.
Bestela, res.end egiten dut emaitza hori igaroz.
Izango da hau, zalantzarik gabe, Ez sinkronizatu primeran
arte benetan idatzi it yourself.
Baina oraingoz, hartu kanpoan gutxienez, hain zuzen,
ez dela itxuraz honetan paradigma komun, zeinaren badugu
eta liburutegiak egileek makila moduko guztiak
konbentzio honekin callback metodoak.
Eta lehen argumentua da Akatsa objektu bat edo nulua.
Eta bigarren eta hirugarren
eta laugarren objektu gauzak dira arduratzen gara eta ordenatu dugu
of jarraitu arauak eta dokumentazioa.
Hasteko kodea rekin dugun zintzotasunez da, nahiko itsusia.
Eta nahiz eta berrienak adibidea da Egia gogor mota
your mind itzulbiratu inguruan, gutxienez ikusmen da,
itxura askoz estuagoa dirudienez.
Eta behin eroso jasoko dituzu horrekin batera, da beraz, askoz errazagoa
eta, beraz, askoz gutxiago joera da aurreko adibide hori baino bugs.
Beraz, utzi niri erakusteko azken gauza bat hemen.
Hau hiru bertsioa da.
Eta - Ez, dezagun utzi honekin bakarrik.
Let me joan pare bat sartu beste azken gauza teasers gisa.
Ondo da, beraz zerbitzaria 2.
Ados. Lehen, edozein zalantza, Badakit hau asko da
baina gehiago nahi duzu argibideak, beraz?
Ez duzu esan onak instrukzioa nahitaez.
Bai?
[Inaudible Oharra]
Zuzena, Oraindik funtsean sistema eragilearen ondo merezitako
irudikatu nola juggle bola horiek guztiak aldi berean,
fitxategi batetik irakurtzen, datu-base bat irakurtzean.
Eta Ikusteko Javascript-a zerbitzari hau da berak gaika zuzenik.
Eta, funtsean, eta egia esan,
han argazki bat da Nik ez dut bota,
eta ez da, nahitaez, argigarria den guztia
baina agian eman dugu duzu mental eredu bat.
Ikusteko Javascript-a bera eta nodo
bereziki ditu honek beraz, ekitaldi begizta izeneko.
Horren bidez, uste dezakezu Node.js du, programa,
literalki bezalakoa da begizta infinitu bat.
Begizta basati bat besterik ez da, zain eta zain eta zain,
osatzeko zereginak bila.
Eta zeregin liteke, joan zerbait eskuratu datu-base batetik
edo hemen bertatik balio bat da datu-base edo joan fitxategi hau eskuratu
diskotik edo hemen bat erabiltzaile batek eskatu.
Ospatzeko edozein sort, besterik ez bezalakoa Nabigatzaile gertaera bultzatuta,
beraz zerbitzariari alboko gertaera bultzatuta.
Eta edozein gauza horiek Ekitaldi osatzen.
Beraz Node.js norbait, besterik begizta infinitu bat idatzi zuen,
begizta basati handi bat, zain gauza gertatuko da.
Eta gauzak gertatuko bezala, ondorioz sortu ilara batean, ezta?
Zalantzarik gabe, datu-base bat balio bat itzuli dezake.
Eta fitxategi sistema bat, eragilearen sistemaren balio bat itzuli dezake
gutxi gorabehera, aldi berean baina ez da ziurrenik joan
horiek ordena batzuk izan.
Eta Node.js da, joan funtsean ilara bat dute
array bat edo handi bat bezala vector, datu-egitura batzuk
duten buffers guztiak gauza horiek.
Literalki bakarrik ezin duelako kudeatzeko horietako bat aldi berean.
Beraz, duzunean, sustatzailearen,
JavaScript asinkronoak idazten asinkronoak erabiliz kodea
funtzioa, honek aukera ematen ari zaren deiturikoak gertaera begizta joan
hurrengo tick, ezta?
Beraz, luze berehala duzun bezala itzultzeko gisa guztietako
metodo asinkronoak horien Irakurritako fitxategia eta stat egin bezala,
berehala itzuliko dira delako callback azkenean
lortzen back.
Itzuli bezain laster,
horrek esan nahi du beste norbaitek ahal get popped hemen salda off
edo duten daiteke popped get off ilaran hemen aurrean.
Eta beraz, ez da Izan serialization du
hori da gertatzen ari dena,
nahiz eta gauza horiek guztiak paraleloan daiteke gertatzen ari
multithreaded sistema bat.
Baina Node.js bera eta zerbitzaria martxan ziren
hari bat bezala.
Eta horren hegalean da t ez duzu max nahitaez
zure ordenagailuaren itzazu gaitasuna da gisa batez
16 core bat edo baldin baduzu 2 core nahiz eta ordenagailu bat
eta besterik gabe ari zaren exekutatzen nodo instantzia bat.
Baina, berriro Nik baduzu 161 antzeko zerbait hartu,
amesgaizto handi bat saihesteko buruko minak denean dator
baldintzak eta arraza blokeo eta semaforo
eta benetan idazten du multithreaded kodea,
beraz upsides eta downsides.
Ados. Beraz, kodea hemen atzera, utzi hasiko garela proposatzen dit
errazteko gauzak pixka bat.
Zerbitzari bat ikusi dugu apur bat duela eta horrek dirudi.
Beraz, hori da, dudarik gabe, nahiko erraza.
Baina besterik munduko bezalako PHP, badira esparru
Laravel bezala eta ez dago Rails eta Django bezalako gauzak,
the Node.js munduan gauza bera.
Eta gehiago gastatzen dugu denbora hontan asteazkenean
eta hurrengo proiektuan.
Baina banoa batean bada zerbitzari 2 gida,
nabarituko pare paradigma bat hemen.
Beraz, hau da - Hara joan Adibidez baliokidea izateko
baina bat erabiliz esparru express.js izeneko,
bertan doan iturburu irekiko da Rails eta Django bezalako software,
Laravel bezala, hori da besterik ez, azken finean, joan
unappreciated izan gaur 'Kausa dira idazten dugu
Adibide sinple esaterako.
Baina fidatzen gurekin.
Oso azkar egingo esta Zure lagun bihurtu
delako gordetzeko aukera izango da duzu TDS kode asko.
Eta paradigma komun bat express.js aplikazio bat da
app.js edo server.js dute eta horrek logika dauka fitxategia
zure programa edo, Gutxienez sarrera puntua.
Hainbat fitxategi izan dezakezu.
Nodo modulua azpidirektorio batek Horrek liburutegiak ditu
deskargatu dituzun duen async bezalako
eta espresiorik besteetan.
Eta gero package.json, package.json honen itxura,
eta eskuz sor dezakezu edo tresna sortu da zuretzat
eta literalki da json fitxategi batean
eta parte interesgarria mendekotasunak hemen.
Just Laravel gustatzen, zuk zuela saltzaileari directory
eta kezkatu izan al duzu Pakete buruz eta egiten -
benetan laguntzea eguneratzeari Artisau edo antzeko komandoak,
liburutegiak duzu instalatu,
package.json batera, era berean, hemen eta liburutegiak kudeatzeko duzu
eta bertsioak zaintzen duzula.
Beraz, package.json bat badut, Dut besterik egin dezake NPM,
Nodo paketea Manger instalatu, nik automatikoki begiratu joan
package.json fitxategia hartan.
Begiratu eta ikusteko, egin dut azken bertsioa izan
saltzaileen modulu guztien
Nodo batean azpimarra moduluak directory hemen edo agian
guraso batzuk edo in arbaso direktorioa.
Eta hala ez bada, ez da deskargatu joan
eta sorta oso bat ikusiko duzu
HTTP stuff joan alanbre zehar.
Horrela, esate baterako, let me zuk erakutsi edukiak
nodo modulu besterik adierazteko.
Dezagun aurrera eta boldly nodo modulu ezabatu
beraz, guztiak gaur egun I da hau.
Eta I NPM instalatu ez bada, duzu ikusten ari dela irakurtzen joan
package.json fitxategi hori eta ikusi dugu antzeko irteera
hau Laravel munduko arte.
Honez oso bat deskargatzen da stuff sorta eta hori da
delako aldi berean, berariaz sorta oso bat haren araberakoa
beste herri liburutegiak.
Beraz, horiek guztiak dira ordenatzeko ari errekurtsiboki deskargatu.
Orain arte, berriro egin dut LS bada,
nire nodo moduluetan dago directory itzuli
eta adierazi bezala atzera.
Beraz, besterik ez da modu bat pakete kudeaketa sinplifikatu.
Orain, begiratu dugu at bada app.js fitxategia, hau da, joan
ra reversion bat izan nahi gure web zerbitzari goiztiarrena
non txu besterik ez dugu "kaixo, mundua".
Baina konturatu paradigma hemen,
Lehenengo berariazko behar dugu modulua, ondoren lerro hau dugu
eta zuk badakizu kode dokumentazioa from.
Literalki tratatzeko duzun modulua en aldagai funtzio gisa,
parentesi hurbil beraz irekia parentesi esan nahi exekutatu.
Hori joan den itxuraz zerbait goaz itzuli
oro har, aplikazio bat deitzea.
Nola funtzionatzen duen?
Egia esan, ez dakit.
Utzi dut beste norbaitek, badakizu, berariaz munduan idazten duten.
Orain stand on noa bere bizkar, beraz
Nire eskaeraren egiteko Pixka bat errazagoa exekutatzen.
Hemen, entzun dut portu jakin
duten gehienetan ezer izan liteke.
Eta hemen, hori da kodea da agian, gehiago gogorarazten orain
Laravel eta routes.php neurtzen.
Beraz, hau afaria erraza da, naiz , ibilbide bat zehaztu da joan
barra star, beraz, dena da xurgatu egingo da
eskaera handler honen arabera.
Eskaera handler paradigma bere funtzioa anonimoa da
eskaera argumentu batekin
eta erantzuna objektu bat zertxobait lehenago bezala.
Eta berariazko baliabide in res.send kodearen jarraian bidaltzen dituzunean
edozein dela ere bidali nahi duzun arabera.
Eta, jakina, ahal duzun zerbait fancier
benetan bidalita fitxategiak edo HTML
edo dinamikoki sortutako edukia.
Baina orain, denok egin txu zen kaixo, mundua.
Zerbitzari hiru sartu badugu, hau da, nahiz eta fancier besterik
duzun funtzionalitate batzuk erakusteko.
Eta zuk erakutsi beharko dugu bertsio are sexier
honen asteazkenean.
Baina duzun inoiz entzun Socket IO agian, of
Nik uste dut, beraz, Jonathan edo norbaitek esan zuen lehenago,
gauza bat nodoa da benetan ezaguna
bere denbora errealean da jokabidea, ezta?
PHP MySQL pentsatzen, zuk txat zerbitzari bat martxan jarri ahal izan ziren
PHP horren bidez bi pertsona Could nabigatzailean leiho bat zabalduko foo.com izateko
eta gero hasi bakoitzeko IMing beste, Alice leiho batean,
Bob beste batean horrela horietako bakoitzak ikusten du bere
edo bere mezuak beste leihoa.
Nola egin nahi duzu hau PHP eta MySQL-en?
Laravel ordena erabiltzen ari den edo ez erabiliz materialaren, izan dezakezu
index.php fitxategi bat bezala.
Eta lortu duzu behar - en Kasu batzuetan lortu nahi txu
inprimaki daudelarik, beraz, ez da HTML inprimaki bat izango da
ziurrenik ez aurkezten inprimaki normal aurkezteko bidez
baina Ajax seguruenik, ezta?
Beraz, batean aurkeztu handler, beraz Idatzi testu-eremu bat sartu,
sartu hit duzu eta gero lortzen zerbitzarira bidali Ajax bidez.
Zer egin nahi duzu ondoren zerbitzarian egin?
Beraz, lortu duzun index.php
edo zerbait dot PHP hori da HTTP parametroa jaso
erabiltzaileen aldetik, Alice edo Bob en berehalako mezua, zer egin nahi duzu
berarekin ordena hura hedatzeko Bob edo Alice, hurrenez hurren?
Duzu esan nahi dut, hitzez hitz tresnek izan duten
Horretarako zure min.
Zer beraz bezalakoa egin nahi duzu?
Izateko minutu bat behar duzu programa hau ezartzeko.
Bai?
[Inaudible Oharra]
Perfektua. Eskubidea, beraz, Nik base bat lortu duzu.
Apur bat ezagutzen dugun MySQL buruz pixka.
Beraz, taula bat duzu duten mezuak da,
agian ez dago aldiz zigilua, erabiltzaileak identifikazio bat,
Mezuaren gorputza Zuk sortu, berez,
eguneratzen dela eta hori guztia.
Beraz, datu-base batean gordetzen.
Eta demagun Alice bidaltzen du Lehenengo mezua, nola lortuko du Bob
Mezu hori orain basetik?
>> Agian Ajax batzuk izango da erantzun hori etengabe joan
datu-baseko itzuli top lortu du [inaudible].
>> Zehazki.
Beraz Bob kodea nor kodea da Alice bera da besterik moduko
harreman simetriko baten,
Bob nabigatzaileak Ajax kode batzuk ditu hori da, ziurrenik, agian 30 egunero
segundo tiraka du Ajax sync bidez zerbitzari,
daude mezu berriak?
Ba al dago mezu berriak?
30 segundo bakoitzean va motatako hoberenak izateko
are gehiago itxaron behar delako
bada Alice literalki bidaliko besterik mezua.
Beraz, Bob en nabigatzailean Could behin bigarren hit zerbitzariari.
Baina horrek esan nahi du Alice en nabigatzaileak zerbitzariari sakatuz
bigarren behin.
Charlie zertaz [Bere gain hartu ortografia]
eta David [ortografia gain hartu] eta Edward [ortografia gain hartu]
eta beste gutun bakoitzean alfabetoaren?
Zein da arazoa Planteamendu honen?
Hits gehiegizko asko -
Esan nahi dut Oraindik besterik eraginkortasunez Zeure ikusmena dosifikazio
edo DDOSing, Banatutako Zerbitzu erasoa ukatzea
zure gune propioa, guztiak izatea
erabiltzaile horiek exekutatu JavaScript hori besterik ez idatzi kodearen
demontre zure zerbitzari daudelarik zenbaki arbitrarioak bada ere,
80 berea izan baita inork ez du ezer esan du
chat aretoan.
Baina besterik ez zaren egiaztatzen hala nola, ziur.
Beraz PHP asko in hizkuntzak besterik ez dira onak
denbora errealean komunikazioetarako.
PHP abisuaren delako no memoria zentrala, ezta?
Saioaren objektuak duzu eta horrek ilusioa sortzen
biltegiratze erdiko baina duten erabiltzaileari bakoitzeko oinarri da.
Ez duzu memoria globala izan bezalako Java servlet bat egiten duzun
familiar edo beste markoa duten bezala lan egiten du.
Node.js ordea, ez duzu memoria global 'duzu kausa
zerbitzari bat eta 'ahal duten ezer nahi gogoratu
erabiltzaile guztiei buruz.
Eta oraindik dezakezu datu-base bat dute.
Baina Node.js buruz gauza polita da handiegia da, ez dela askoz hobea
PHP antzeko zerbait baino eta ilusioa sortzeko
anitz manipulazioa aldi berean gauza.
Eta hain zuzen ere, alde batera eta, ahal duzun chat zerbitzarietan ezartzeko PHP,
baina normalean egin nahi duzun hauteslekuak luzeak zerbait izeneko
Horren bidez ez duzu ping zerbitzariari bigarren behin.
Zerbitzariari 'ping duzu, zerbitzaria ez du zuk erantzuteko
30 baino gehiagoz segundo, literalki esertzen da
begizta batean zain eta zain.
Eta zerbitzari kontrolak bada han basean datu berriak ekarriko
eta behin bakarrik, ikusten duzu "Oh, Hemen Bob mezu bat da, "
du honi HTP zerbitzariari bertan?
Beraz zure nabigatzailean efektua da, IE ikonoa edo Mozilla
edo dena spinning besterik mantentzen 30 segundoko denbora bat webgunea.
Baina hankaz da, ez duzu 30 konexio eskaerak izan
30 segundotan, bat egin behar duzu.
Beraz, hauteslekuak luze deitzen.
Baina are hobeto web modernoan Nabigatzaile izeneko zerbait da
Web Sockets, zein CS143 hartu duzu,
eraginkortasunez dezakezu bat egin Bezero batetik TCP konexioa
zerbitzari batera nabigatzaile baten antzera eta, ondoren, zintzilik da
ia erabili gabe baliabide asko bezala
tradizionalki egin HTTP baitaiteke.
Eta Socket IO da liburutegi Node.js bat
egiten da, askoz errazagoa socket konexioak egiteko
edo ez dago ilusio Nabigatzaile zahar at
beraz hau ezartzeko dezakezu denbora errealean funtzionalitate en.
Beraz, hona hemen adibide bat da.
Gora top stuff hau lortzen bat Apur zailagoa
baina batez ere, kopiatu eta itsatsi socket.io ekarriko duen dokumentazioa ere.
Hona hemen gaur egun gehiago bat eskaera zehatzak kudeatzailea.
Bada erabiltzaileen eskaera bat slash, zer fitxategia dut
itxuraz izateko zerbitzatzeko arte horiek?
Index.html.
Eta ez da berri batzuk stuff hemen erreka
eta zuk erakutsi dut une bat besterik ez.
Baina hori beste modu bat da
fitxategi baten bat grabbing Apur eraginkortasunez
baino besterik fs.readFile egiten.
Smarter txiki bat da bereziki fitxategiak handi batentzat.
Istorioa hain luze laburrean, lerro hauek besterik zerbitzatzeko
index.html izeneko fitxategi bat sortu
horrek oraingoz bere gain hartzen du HTML inprimaki horren bidez Alice
eta Bob intercommunicate liteke.
Azkenik, io.sockets.on, hau hain lerro horretatik dator hemen.
Beraz, besterik ez dut irakurtzen dokumentazioa io.socket ematen dit
a deiturikoaren sarbidea Web Sockets nabigatzaile baten bidez,
nabigatzailea arteko eta zerbitzariak.
Dut entzuten nabil berezietarako Ekitaldia konexio horren bitartez
denean, erabiltzailearen lehen hits nahian zerbitzariari
konexio hau irekitzeko, naiz dei hau deitu atzera egingo.
Eta orain, noa honako hauek egin ahal izateko.
Bost segundo bakoitzean, zer egin behar dut?
Igortzen edo emititzen noa scratch gogoratu baduzu,
hizkuntza grafikoa litzateke difusio bloke hori?
Beraz, ari den igortzen zoazen
edo izeneko ekitaldi bat eragin arbitrarioki zerbitzaritik.
Eta hori gertatzen den Mezu Ping bat eduki
eta uneko data.
Beraz, hau da benetako bat txat zerbitzaria duten Alice
eta Bob erabil daiteke, baina ordenatu da antolaketa txat zerbitzaria automatizatu
mezuak dira moduko sonar ping dira.
Besterik ez daudela une eguneratuta bost segundoro bidaltzen ari.
Beraz, benetan exekutatu I bada Gauza - eta hori da.
Argi izan behera hemen, oharra hau besterik ez da behera logging hemen.
Beraz, let me buelta bat hori begi itsu.
Utzi app.js. nodoa egin me
Goazen nire nabigatzailea me.
Etxeko orria berriz kargatzea hemen.
[Eten]
Eta utzi inspector itxi zidan.
Bost segundo bakoitzean, bat daukat manifestazio nahiz ez arren
giza interaktiboa
hori da zerbaiten asinkronoki gertatzen.
Nabigatzaileak abisua batean, ez dago spinning ikonoa da.
Honez Ezaugarri dotore bat erabiliz Chrome nabigatzaile modernoan of
ahokadura bat mantentzearen kanpaia azpian konexioa
eta zer deitzen da oro har, pub / azpi-eredu bat,
argitaratzen / subscribe eredua, non ez dugu egin
nahiko hemen esplizituki.
Baina zer da hau inguru polita pub general / sub paradigma da
duten publisher bat izan dezakezu.
Kasu honetan zerbitzari zentral eta guztiak
gizabanakoaren Nabigatzaile bezeroak dira.
Alices eta du Bobs mundu hura harpidetu daiteke,
beraz, mezuak errele dezakezu Edozein erabiltzaile kopurua, besteak beste.
Eta nahiz eta berriro gaude Ez interaktibitatea ikusten,
agian izan genuen 12 lerro kode besterik horretarako.
Eta seguruenik ez jauzia nola liteke Látigo duzun imajinatzea
index.html fitxategia atera egia HTML inprimaki bat du,
jQuery rekin kodea apur Horrek ez du egunez bat bidali ajax
baina besterik bidaltzen edozein dela Alice edo Bob zerbitzariari mota
eta ondoren, zerbitzariak da transmitituko dituen daudelarik.
Eta dira ohi agintzen dut Azken gauza bat besterik ez
tease honekin.
Korrontean sartu badugu zero eta bat,
Ikusiko hori besterik kode duzu apur bat desberdina hemen.
Beraz, besterik ez dut ikusten duzu, honen alternatiba bat da
fs.readFile deitzen dut Metodo lehenago, horren bidez,
Node.js esan dezakezu, "Go irakurri fitxategi honen memorian.
Baina big bada eman besterik aldi berean niretzat zatia. "
Eta CS165 etatik ezagut dezakezun
edo 161 fitxategi-sistemak ezberdinak dituzte
performance propietate.
Agian irakurri nahi duzun 512 byte blokeetan
edo 2 kilobyteko edo dena delakoa.
Hau optimizatzeko modu bat da iteratively fitxategia atzeko lortzean
beraz, txu dezakezu apur bat azkarrago
nabigatzailea edo duenarentzat amaieran bezeroa da.
Edukien kopuru hain handi gaur eta ari gara murgiltze joan
asteazkenean xehetasun gehiago sartu Tim-ekin [bere gain hartu ortografia]
bereziki, nola dugu begira ideia batzuk itzuli ahal izango
lehen erdialdeko Jakina Laravel eta ereduak
liburutegi bat sartu zuela bere burua Bookshelf.js izeneko idatzi
hau da, gero eta gehiago bihurtu komunitatean ezagun
gehienak ematen duzulako,
ez baino gehiago bada elokuenteak funtzionalitate
horrek abisuaren dela liburutegi Laravel of ezagutzeko,
beraz, gero eta gehiago nola
fledged guztia garatu ahal izateko asteazkenean apps.
Gero ikusiko dugu duzu.