>> Ang lahat ng mga karapatan kaya kami ay bumalik, isang pares ng mga layunin para sa araw na ito,
Makikita pumili kami ng hanggang saan tumigil kami huling oras,
isipin na kami ay paggawa ng ito succession
ng mga application na may kaugnayan sa server, sobrang simple ngunit ang paggamit node JS
at pagkatapos ay pinaka-kamakailan din gamit ang express ugnay AS
at kung ano ang ipinahayag JS ang analogue ng sa PHP mundo.
Kaya express ay higit pa ... malapit,
kaya express ay mahalagang MBC framework na medyo
kilala sa node js mundo,
Bookshelf kung saan ipapakita namin makita ngayon sa pamamagitan ng Tim ay isang analogue
ng mga magaling magsalita na kung saan ay isang ORM sa isang object na may kaugnayan mapper
na aktwal na ginagawang mas madali upang maiwasan ang SQL code mababa ang antas
at talagang ipahayag ang relasyon kasama ng iba't ibang mga bagay.
Kaya isa sa mga pinakaastig totoo lang bagay
tungkol sa node js lamang kung paano madali ito lends mismo
sa paggawa ng mga application real time, mga bagay tulad ng mga chat server
o mga server pagmemensahe, anumang bagay na ngayong gamitin mo guys
tulad ng Google ... G-chat o Google hangout
o update sa katayuan sa Facebook o kahit na Twitter kung ikaw ay
sa kanilang lahat web page ay isang uri ng real time
o nagbibigay sa iyo ng ilusyon ng real time
at iyon ang talagang masakit sa ang leeg ang gagawin sa isang bagay
tulad ng PHP at ang aking SQL kanan ano ang ipinapanukala naming
sa Lunes ay magiging ang mga paraan
sa pamamagitan ng kung saan maaari mong ipatupad ang ilusyon ng pag-uugali ng real time
may isang chat server sa PHP, kung ano ang kailangan mong gawin?
Nagpapadala ang Alice ang isang mensahe, mga hit ipasok kung saan ay ito pumunta?
Oo.
>> [Seksyon hindi marinig]
>> Sa isang data base at pagkatapos ay kung ano ang mayroon ang browser ni Bob
gawin upang aktwal na makita ano Alice ay nagsabi, oo?
>> [Seksyon hindi marinig]
>> Panatilihin botohan sa base ng data, kanan, kaya isang ajax kahilingan ay
upang sunog bawat segundo, bawat ilang segundo namin o usapan sa madaling sabi
ngunit hindi tingnan ang isang halimbawa ng isang bagay na tinatawag na mahaba ang botohan,
sinuman isipin kung paano
mekanismo na ... sa Gumagana ang isang mataas na antas?
>> [Seksyon hindi marinig]
>> Mismong, oo kaya isang browser pa rin ginagawang isang ajax kahilingan
sa isang server, sa isang foo tuldok php ngunit foo tuldok php Mukhang lamang
mag-hang, ito lubos na nakapatong sa isang habang loop para sa maraming
bilang 30 segundo karaniwang at lamang ng isang beses ang foo tuldok php file
napagtanto oh may bagong hilera
sa base ng data ang ito aktwal na tumugon
may http pagtugon.
Kaya sa tingin mo na ito maaaring kung hindi man hang ang server
at ginagawa nito sa ilang mga lawak
ngunit ibig sabihin nito mayroong ng maraming mas mababa overhead
dahil hindi mo kailangan ng mga bagong TCP koneksyon, isang bagong koneksyon htp
upang aktwal na humiling data mula sa server.
Ngunit node js ay may isang napaka- sikat library na tinatawag na socket
tuldok IO saan maaari kang hindi kailanman ginamit ay binuo sa tuktok
ng isang teknolohiya na tinatawag na web socket kung saan ay naroroon
sa pinaka-modernong browser at ano IO socket ang ginagawa ay daan sa iyo
upang lumikha ng mahalagang ng paulit-ulit na koneksyon
sa pagitan ng mga browser at server na napakababang overhead
kaya gawin mo ay hindi kinakailangang magkaroon ng parehong mga isyu scaling
na maaari mong kung ikaw ay Patuloy pagpindot sa server
sa mundo ng PHP at aking SQL at mga katulad.
Kahit na para sa mas lumang mga browser
na hindi sumusuporta sa socket web ito socket tuldok library maaari IO
umasa sa flashes pagpapatupad ng socket
at socket ay isang networking bagay mula sa CS143 halimbawa.
O maaari kahit na ito umasa sa mahaba botohan mismo kaya ipatupad nila
na parehong uri ng trabaho
sa paligid para sa aktwal na pagpapanatili ang ilusyon ng na koneksyon.
Kaya socket [hindi marinig] IO at ito ay nasa anyo
ng isang java script library, lubos na kung gagamitin mo ito
sa anyo ng isang node js application mong i-install hindi lamang
ito bilang isang pakete gamit ang isang bagay tulad ng NPM na ginamit namin sa Lunes
at o isama mo ding strip tag sa sa iyong html file
na nagsasabing gamitin ang client side library.
Kaya mayroong dalawang halves sa ito at kung ano ang nagawa mo na kami dito
sa ikaapat na pag-ulit ng pagkakasunud-sunod Lunes ni
ng mga halimbawa ay ang sumusunod.
Kaya ito istraktura ng file ay nakapagpapagunita ng isang napaka-karaniwang mga hanay
up para sa ipinahayag js at thankfully ito ay paraan mas simple
kaysa lervo [pagbigkas] ay, isipin kapag itinakda mo ang
up lervo ba kayong isang malaking pangit dump ng isang buong maraming mga file,
mga direktoryo ng vendor, Lib at napaka mabigat na timbang kumpara sa ito.
Ngayon sa pagiging patas na Nakuha namin ang layo ng mga bagay-bagay na halos isang
kaguluhan ng isip ngunit ang lahat ng mga makatas bagay-bagay ay talaga
sa node module.
Lamang upang mabigyan ka ng panlasa kung tiningnan namin
sa node module mayroong dalawang module o mga aklatan
na ako nai-download, ito magiging katumbas
ng direktoryo ng vendor, isa ay tinatawag na express na
tulad ng larevel ngunit sa node
at socket IO ang isa ko lang nabanggit.
Kaya mga umiiral nang sa gayon ay maaari naming gawin ang mga sumusunod kung buksan ko
up hayaan sabihin ng index tuldok html, sabihin muna tingnan ang html,
ito ay pagpunta sa gumawa ng sulat ito katawan, ang aking super,
sobrang simple chat server.
Kaya mayroong tila isang ul na may kakaibang ideya ng mga mensahe
at iyon ang kung saan isa li sa isang pagkakataon,
lahat ng mga instant message ay pagpunta sa lumitaw sa pagitan ng Alice
at si Bob at pagkatapos ay mayroong isang simpleng form gamit ang isang patlang ng teksto
at isang pindutan isumite sa pamamagitan ng kung aling Alice
o Bob maaari talaga mensahe sa isa't isa.
Kaya ang net epekto kung Ba akong magpatakbo ng application na ito
sa pamamagitan ng paggawa ng node na tuldok na espasyo app js, kung hilahin ko up ng ilang
ng mga window ng browser ay na Alice ay maaaring maging sa kanan,
Bob ay maaaring maging sa kaliwa at lamang
upang maging malinaw walang magic dito Mayroon akong isang window
sa incognito kaya walang pagbabahagi ng mga cookies o anumang bagay
tulad nito, ang mga ito ay dalawang natatanging mga gumagamit.
Dapat kong magagawang mayroon Alice kamustahin Bob, i-click isumite
at ngayon makikita mo sa kaliwa na mensahe Alice ni Ipinadala
at halos agad sa kanan.
Walang botohan sa wari kasangkot, Bob natanggap ang parehong mensahe.
Ngayon sabi ni Bob sabihin hey Alice makita mo ang tapat na epekto.
Kaya kung ano talaga ang pagpunta sa, kung paano magkano code na kailangan namin upang sumulat
upang ipatupad ang isang chat server
kung saan maaari mo na ngayong intindihin mula sa data sa pag-iisip na ang lahat
sa kuwartong ito kung ito ay hindi sa aking [hindi marinig]
ngunit sa foo tuldok com namin ng dati ang lahat simulan ang pakikipag-chat ay agad na
sa isa't isa.
Kaya kung ano ang kasangkot at bago ko i-clear ang screen na ito na ito ay ito
ay socket lang IO pagiging isang maliit maingay, ito ay lamang ang pag-print
out impormasyon sa debugging sa screen,
mayroong talagang walang iba ng pagpunta sa doon.
Kaya hayaan mo akong magbukas ng app na tuldok js, kaya tulad ng dati Nakakuha kami ng ilang mga bagay
sa tuktok ng file.
Ang isang bungkos ng mga kinakailangan, kaya ang mga ito ay tulad ng aklatan
o patalasin pahiwatig o nangangailangan onces kahit anong mental modelo na iyong
nais na magkaroon lamang at sa pagbabalik-tanaw FS ay ginagamit
para sa anong uri ng pag-andar?
Kaya kaya ng pagbabasa ng mga file system ng mga file potensyal na at bagay-bagay tulad na
at ito ang gagamitin ko sa isa ilagay bilang makikita mo,
express ng kurso ay ito framework na aming ginagamit,
ito ay mahigpit na hindi kinakailangan ng dati namin
tulad ng sa Lunes ganap lumikha ating sariling http server mula sa simula
sa pamamagitan ng paggawa lumikha ng server at ang lahat ng ng ganoong uri ng code mula sa bago
ngunit dahil kakailanganin namin nakikita ang ginagawang bagay ng kaunti mas madali
dahil ang lahat kailangan kong gawin ay sa 3 linya dito magbigay ng halimbawa
at ipahayag sa bagay, Tatawag ako ito app, medyo nagkataon,
Makikipagtulungan ako sabihin ang app na makinig sa nagkataon port 1337,
na ma-80 sa pamamagitan ng convention
at pagkatapos ay sa wakas Mayroon akong isang bagong linya ngayon na kung saan ay sinasabi
upang mangailangan ang socket IO aklatan at pagkatapos ay
sa pamamagitan ng ito chain diskarte gagawin lamang ito tuldok operator ako
pagtawag sa isang aralin makinig na lubos na nagsasabi sa mga socket
IO library upang din makinig sa na parehong server
o web koneksyon socket.
Kaya ngayon ano, kaya kung ano ang Ang paggawa nito, ang mga apat na linya
ng code dito na dapat Inaasahan nakapagpapagunita ng larevel,
ano ang kinakatawan ito?
>> [Seksyon hindi marinig]
>> Ito ay isang ... ruta, lamang isang ruta kaya sa app na tuldok js,
aka server tuldok js depende sa kung ano ang mga tao gusto pangalanan ito
sa kanilang sariling mga application mayroon kang isang convention
ng paggawa ng pagtukoy sa iyong mga ruta,
app na tuldok get nangangahulugan kailanman kang makakuha ng isang kahilingan get upang pumunta
sa para sa literal iwa sige at tawagan ang hindi kilalang function na ito
at ang hindi nagpakilalang gumawa ng function sa kasong ito ay tumatagal ng kinakailangan
o kahilingan at isang tugon, potensyal na ilang iba pang mga bagay
ngunit Nagnais ang dalawang.
Binibigyan ka ng kahilingan na ang access sa mga bagay tulad ng http parameter
at mga header at iba pang mga makatas bagay
at pagkatapos ay ang tugon ay ang mekanismo
sa pamamagitan ng kung saan maaari kang tumugon sa user.
Kaya ito ay napaka-simple kahit na kahit na hindi namin nakita medyo ang
parehong code ng huling oras, ako gamit ang mga module ng file system,
lumikha nabasa na paraan ng stream na lubos na gumagana na,
lumikha ng isang read stream na Nangangahulugan mahalagang simulan slurping
up ang bytes mula sa index ng tuldok html nang mahusay hangga't maaari mong
nang walang kinakailangang naghihintay hanggang sa iyong basahin ang buong file
at tulad ng iyong ginagawa na pipe literal ang mga ito
sa patayong bar kahulugan kung komportable ka
gamit ang command line linux,
pipe ito sa tugon ng bagay.
Kaya mayroong dalawang halimbawa na may kaugnayan sa mga stream sa Monday,
kami ay tumingin lamang sa isa ngunit tuloy po kayo upang tumingin pabalik
sa stream o at stream 1.
Stream 1 ... 0 ginawa isang bagay na katulad nito,
May ginawang stream 1 isang bagay halos eksakto tulad nito,
ito ay isang magandang kumilos lamang isa Liner ng sinasabi ng uri
ng slurp isang bagay sa paglipas dito at pagkatapos ay simulan ang pagpapadala ng ito dito
sa parehong oras na walang paggawa ng masa sumang-ayon
at pagkatapos ay isang napakalaking karapatan,
ang paraan na ito ay sa pangkalahatan ay mas mabisa.
Kaya na uri ng lumang bagay-bagay kahit na ito ay bagong sa Monday,
ito ay lahat na aabutin upang ipatupad ang isang chat server
may node js at higit pa partikular socket dot IO.
Kaya kung paano ito gumagana, hayaan mo akong ilipat up ito ng kaunti,
kaya IO lamang ang variable na tumutukoy
sa module namin Kinakailangan ang mas maaga,
tuldok socket lamang ari-arian sa loob nito
na nagbibigay sa akin socket mga kaugnay na pag-andar
sa ay isang pangkaraniwang paraan na magkaugnay sa kung ano ang pangkalahatang mga kuru-kuro?
Ang isang kaganapan kaya sa aka makinig sa ilang mga aklatan ay nangangahulugan lamang ito
sa pakikinig sa kaganapang ito na kung saan ay tinatawag na koneksyon
at ngayon alam mo na ito lamang mula sa ng pagtingin sa mga papeles,
kung sinuman ang sinulat library tinukoy ng isang kaganapan na tinatawag na
na koneksyon gumagana kung ano ang iyong iniisip
kapag Alice o Bob nagkokonekta.
Sige at tawagan ito function ng anonymous tumagal nagdaraan
sa isang argument ang kliyente na kung saan ay tila ilang mga uri
ng bagay na iyon ay kumakatawan Koneksyon Alice ni
o ni Bob koneksyon o Charlie o sinumang iba pa
at ngayon ginagawa namin ang sumusunod.
Sabihin namin ang kliyente matapos siya ay konektado
upang partikular na makinig
para sa isang mensahe na ganap nagkataon na tinatawag mensahe
tutuldok client.
Ito ay isang bagay na Tim at Ako ay dumating up gamit, maaaring ito ay foo
o bar, ito ay lamang ng ilang natatanging string na kailangan namin
upang magpasya sa bilang ang mga developer.
Sa tuwing Alice o Bob nakakarinig
na kaganapan na ito anonymous dapat na matawag function na
at ang data, ang mga nilalaman ng Alice ni
o mensahe ni Bob ay dapat na pumasang sa handler ng kaganapan na ito
at ngayon kung ano dapat ang client maganda ang maaari mong uri
ng basahin ito nang walang kinikilingan intuitively client ang dapat i-broadcast,
kung hindi man kilala bilang naglalabas ng isang mensahe na tinatawag na pamamaraan server
at sa gayon ay signifying ang mensaheng ito Parating na mula sa server hindi
mula sa browser at kung ano Gusto mensahe na maging,
ito ay tila ang kargamento mula sa ano naman ang dumating mula sa mga kliyente
at kami ay lamang ng pagpunta sa nagkataon tumawag ito mensahe.
Kaya ng maraming ito ay di-makatwirang
sa pamamagitan ng makatwirang pagpapangalan balarila, Tim at ako ay dumating
up gamit, halos Tim at pagkatapos namin lamang lumilikha sa huli isang
server na gumagana kung ano-chat, kapag nagpapadala Alice ang isang mensahe
at mga hit magpasok ano kaganapan sa malas ay makakakuha ng fired,
lamang sa pagbabalik-tanaw.
Alice uri ng mensahe, mga hit magpasok, ang client mensahe ay fired,
nakakarinig ang code na ito na at ngayon ang server broadcast kung ano,
kung ano ang dulo resulta ng ito talaga?
Nagpapadala ang Alice ang mensahe ngayon rebroadcasts ito sa server
epektibo sa lahat ng tao maliban sa para sa Alice, bakit lahat ng tao maliban sa
para sa Alice kung tiningnan mo lamang
sa dokumentasyon ng client tuldok broadcast tuldok umamin,
Literal na ginagawa iyon, broadcast ang mensahe
sa lahat maliban sa client na nagpadala sa iyo ng
na pinaka-kamakailang mga mensahe.
Kaya ito ang dahilan kung bakit mo lamang makita ito nang isang beses sa bawat panig,
hindi mo makita ang parehong Alice at Bob nakakakuha ng mensaheng Alice ni.
Kaya na ito, ito ay isang relaying ahente
kung ikaw na pagkuha lamang sa mga mensahe
at rebroadcasting mga ito out
at ito ay lubha nasusukat Ibig kong sabihin kahit na
may sobrang simple server at ng ilang linya
ng code na maaari mong tiyak mahawakan ang daan-daan kung hindi libu-libo
ng sabay-sabay na simpleng mensahe pagpunta pabalik-balik na tulad nito
at isipin lang ang pagiging kumplikado ng ngayon ginagawa ito sa PHD
o Larevel o aking SQL at kung magkano ang code sa makukuha mo
na magsulat upang talagang makamit iyon.
Ngayon sa pagiging patas ito ay hindi paulit-ulit na karapatan
kung napupunta down ang server nawala namin ang buong kasaysayan
kaya hindi masyadong isang pagsasalin perpekto pero
na tuwid pasulong.
Tingnan natin ang Java script Hayaan code namin nilaktawan sa paglipas ng mas maaga,
ito ay Alice at Client ni Bob,
ang web page na kanilang ginagamit ngayon Tingnan natin up dito para sa isang sandali ipaalam.
Mayroong isang kaunti pa code
ngunit ito ay halos lamang jQuery dito kaya notice
na sa web page na nakuha ko
up ng ilang sandali ang nakalipas namin isama ang jQuery library,
ang socket IO library at bilang isang-tabi mapansin ang pagkakaiba
dito, iwa slash sa simula ng isang path
parang ang ibig sabihin nito kung ano eksakto,
kung saan ay jQuery tuldok js sa kung anong server?
Oo.
>> [Seksyon hindi marinig]
>> Ito ay sa internet oo Literal na tinatawag na tuldok code jQuery
tuldok com kaya bakit iwa, iwa, bakit hindi lamang isa slash,
kung saan ay ang http o ang tutuldok, kung ano ang ibig sabihin nito sa pangkalahatan
kung mo iwa slash sa simula ng url?
Ito ay talagang kapaki-pakinabang.
Okay kaya kung ano ang malinaw naman Nawawala ang http ngayon kung kami dahilan
sa pamamagitan ng lohikal na ito, Karaniwang hindi mo kailangang
upang mailakip ang isang pangalan ng server karapatan
tulad ng kung ginagamit lamang slash jQuery tuldok js kung ano ay ipinapalagay
sa pamamagitan ng mga browser?
Na ang file ay nasa parehong server kaya patuloy na pag-uuri
ng logic kung hindi mo sabihin ano ito protocol ano ang
browser ay ipinapalagay, parehong protocol kaya kung kailanman na iyong binisita website
na nagbibigay sa iyo ng isang error sa kahabaan ang mga linya ng hindi secure na nilalaman
sa pahinang ito ito ay dahil may taong nag-hard code ng http
colon slash slash URL para sa isang imahe o isang Java script file
o CSS file, ang isang bagay tulad na sa source code ng pahina
ngunit ang pahina mismo sa URL browser ay http s.
Kaya ito ay isa lamang sa magarbong maliit na paraan
ng sinasabi na hindi ko alam kung ano ang protocol ay
na ang mga end user pagpunta sa gamitin
ngunit tiyakin lamang na ito mga tugma upang ang chrome
at iba pang mga browser huwag sumigaw sa user.
Ang tanging catch pagiging jQuery mga tao ay mas mahusay na set
up https sa kanilang server.
Kaya ang mga ito ay aktwal na naglilista sa 443.
Ang lahat ng mga karapatan samantala ito isa dito na ito ay uri
ng mga nakaliligaw na slash socket IO nagmumungkahi
na mayroong isang direktoryo na tinatawag na socket tuldok IO sa aking server
ngunit mayroong hindi kung gumala-gala namin
sa paligid naroon ang direktoryo ng node ng module ng
ngunit walang anuman pampublikong tungkol dito,
kapag na-configure namin socket IO upang makinig sa parehong port,
1337 mahalagang library na na sinulat ni ibang tao ay pagpunta
sa uri ng isingit ang ilang mga code sa kapaligiran node js ni
at makinig para lamang sa mga path na ito.
Library na may lamang isinaayos ng isang ruta para sa ito,
ito ay hindi isang tunay na direktoryo.
Mas sa isang karaniwang lokasyon.
Okay kaya ang ngayon kawili-wiling bahagi,
kaya kapag ang dokumento Handa na ang bilang na ipinahiwatig
sa pamamagitan ng ito jQuery bumuo, unang pupuntahan ko sige
at kumonekta sa isang socket,
ano socket sa pamamagitan lamang ng ... panatilihin itong simpleng ako pupunta upang kumonekta
upang mabawasan nang malaki, na kung saan ang gumagamit ay,
Iningatan ko na ang mga halimbawa simple lang kami ng pagpunta sa kumonekta
sa eksaktong parehong URL na iyon ang gumagamit ay binisita pagkatapos ako pupunta
upang gawin ang mga sumusunod, ako ng pagpunta sabihin browser Alice o ni Bob
upang makinig para sa mensahe mula sa server.
Muli ito ay maaaring naging foo
o bar anumang oras mo makarinig ng isang mensahe
mula sa data na ito server tawag at pagkatapos ay gawin ito jQuery code
na ako sa paghula pinaka-kung Hindi lahat ng tao ay pamilyar
may mga araw na ito ngunit talaga ng pin upang ilista item
sa umiiral na ul na ay tinawag ng mga mensahe
na literal sabi anuman ang kargamento ay
ng mensahe ng chat sinundan ng isang gitling, na sinusundan ng makakatanggap,
sinusundan ng isang space at pagkatapos ay isang oras na pag-update at na ang dahilan kung bakit
upang maging malinaw kung pumunta namin pabalik
upang ito makakuha ka ng mga karagdagang bullet muli at muli
at muli gamit beses petsa.
Samantala kung tiningnan namin down na dito mayroon kaming lamang
upang pangasiwaan ang pagsusumite ng form nang sa gayon ay ang receiving
ng isang instant message, narito ang ang pagpapadala at ito ay uri
ng hindi nauugnay sa node js, makinig sa mga form isumite ang kaganapan.
Kapag nangyari ito pigilan default, ito lamang ay nangangahulugan na huwag isumite ito
sa server sa karaniwan paraan, i-reload ang buong pahina,
nais naming gawin ito lahat sa pamamagitan ng ajax.
Narito ang ilan lamang jQuery code
upang aktwal na makuha ang input na kung saan ang uri ay mensahe,
na ang pangalan ay mensahe sige
at makakuha ng mga ito ay halaga pagkatapos mo sige
at kung aktwal mong magkaroon ng isang mensahe, kung Alice at Bob
o Bob aktwal na mga uri ng ilan none 0 bilang keystroke naglalabas
sa socket ng isang mensahe na tinatawag na client message na na kargamento
at pagkatapos ay down na dito na ito ay kung bakit ito berde bilang kabaligtaran
sa pula, namin output lamang appliance side [hindi marinig].
Kaya na ito ngunit ang lahat ng ito ay ang set up lamang,
ang tunay na bagong bagay-bagay gagawin ko magpakilala lamang ang tatlong
o limang linya ng code dito at na uri ng mga pahiwatig sa kapangyarihan
ng node js at may ito ang partikular na library.
Kaya sabihin magsagawa ng mabilis tumingin sa express tuldok js,
kaya kung ano pupuntahan ko upang subukang i- gawin sa natitirang dalawang
ng minuto dito ay naka-set up ng isang ilang ideya, ang ilang mga diskarte
na pagkatapos ay tumagal nang ilang minutong break na, Tim ay magse-set up
at pagkatapos ay gagamitin namin sumisid sa mas malalim
sa mas kawili-wiling ipahayag application at din
sa bookshelf, ang library talagang sinulat Tim
para sa komunidad ng open source
na nagbibigay sa amin ng mahusay magsalita liwanag pag-andar sa aking SQL
at transaksyon at iba pang mga naturang mga tampok at makikita siya ring sumisid
sa isang maliit na mas malalim sa wika Java mismo script,
paano nito bagay o di-class Gumagana ang modelo kung hindi man alam
bilang isang modelo prototype, ilang higit sa na darating.
Kaya ipaalam sa tumagal ng isang pagtingin sa dalawang huling mga application dito, server limang
at server 6 na lahat uri ng katulad sa espiritu,
mga ito ay hindi makipag-chat server ngunit ginagamit nila ang express.
Kaya ipaalam sa tumagal ng isang pagtingin sa kung ano talaga ginagawa ito,
Pupunta ako sa sige at bukas ... pupuntahan ko patakbuhin ang app na ito
may js node app, ako ng pagpunta sa bumalik sa aking browser at i-reload
at ito ay tila lahat ng server na ito ay ang paggawa,
ito ay isang napaka-simpleng server na tila isang paghahanap
engine kaya kung nagta-type ako sa foo at isumite, walang mga resulta sa paghahanap
para sa foo, hindi ko makuha sa paligid upang pagpapatupad ng mga sopistikadong
dulo pabalik, ang lahat ng ito ay pagpunta
gawin ay echo kahit na ano mong i-type walang mga resulta para sa foo,
walang mga resulta para sa bar kaya kung paano ang gagawin namin ito
dahil mayroong isang dalawang piraso, isa,
mayroong malinaw na ang ilang mga input ibinibigay
sa server hindi Larevel siyempre ngunit node js ngayon
kaya kailangan naming sa paanuman kumuha sa na parameter Q,
malinaw na aming ginagawa ang ilang mga uri ng tanawin dito,
kami ay nagre-render ng isang view upang siguro mayroong isang pagkakataon
para sa mga template o variable interprelation [pagbigkas]
kaya tumagal ng isang hitsura ipaalam sa mga sumusunod.
Sa js app para sa partikular na server na ito ay ang mayroon kami.
One kinakailangan namin ipahayag mismo, dalawang module landas
na gagawin lamang ng ilang kapaki-pakinabang na mga bagay-bagay
tulad ng pagsali sa mga string magkasama at iba pa para sa akin,
Makinig ako sa port 1337 at ngayon ito ay bagong kaya ito ay lumiliko
out na express tulad Larevel Sinusuportahan ng iba't ibang mga plug in
at teknolohiya at iba pang mga bagay at isa
ng mga teknolohiya na sa iyo Maaari plug ng ay isang view ng engine
na kung saan ay nangangahulugan lamang kung ano templating engine ang nais mong gamitin,
Larevel nagkaroon ito ay pag-aari bagay ngunit maaari kang plug
sa iba't-ibang mga bagay, iba't ibang mayroon peras P Framework
iba't ibang paraan ng templating, ejs lamang ang mga karaniwang
at isang magandang simpleng engine na lang sabihin gawin mo ang mga bagay
tulad ng kulot tirante na na kayo ay nagkaroon sa Larevels syntax
para sa substituting variable,
ito ay isang maliit na iba't ibang syntactically ay lahat.
Kaya ngayon ay may bagay na tinatawag na ito gitna tinda kaya bilang makikita mo
sa iyong sariling mga koponan sa proyekto node isang gitna tinda ay isa lamang uri ng code
o library na mag-iniksyon sa iyo
sa [hindi marinig] tugon buhay na ikot ng isang application,
sa ibang salita ang dalawang mga linya ay nagsasabi sa express
upang gumawa ng ilang dagdag na trabaho sa pagitan ng ang oras ay nakakakuha ito ng isang kahilingan
at sa pagitan ng oras ay nagpapadala ito na kahilingan sa iyong sariling ruta,
ang iyong code na na naisulat.
Kaya sa partikular na ito linya dito gamitin express tuldok static at lahat
ng ito kumplikado ito lamang Ibig sabihin kung makakita ka ng isang kahilingan
na nagmumula sa para sa isang static na file tulad ng foo tuldok jif o foo tuldok css
o foo tuldok JS kaya hindi isang dynamic na binuong ruta,
sige at angkinin ang nakatira ito nasa pampublikong subdirectory,
na ang lahat na ang ginagawa.
Ito ay uri ng tulad ng pagma-map sa Larevel, ang lahat ng bagay sa iyong web
o ang iyong mga pampublikong direktoryo sa halip sa Larevel.
Ang susunod na linya lamang sinasabi gusto ko bang gamitin ang mga ruta,
Gusto kong gamitin ang mga bagay tulad ng app dot makakuha ng
kung saan nakita namin ang isang sandali ang nakalipas at ipapakita namin makita sa isang segundo lamang ngayon.
Paraan Kaya app na tuldok na makakuha ng makinig para sa rutang ito,
iwa kapag nakakuha ka ito tumawag ito anonymous function na tumatagal
sa isang kahilingan at isang tugon at ngayon lamang
tulad ng Larevel mayroon kang isang paraan ng pag-render ng isang template,
tugon dot-render, Quote magpanipi index,
render ang isang template tinatawag na index,
na ito ipaalam sa gayon ay suspindihin na thread para lamang ng ilang sandali hitsura
sa mga nilalaman ng ang direktoryo ng tanawin
at napansin ito masyadong ay sobrang simple para sa ngayon,
mayroong index ng tuldok ejs at maghanap tuldok ejs,
Nang walang alinlangan ko gusto ang unang
dahil iyon ang isa ko lang pagod upang mag-render at kami makita
sa tanawin index tuldok ejs pinaka-aktwal na ganap na html
sa sandaling ito, mayroong talagang hindi templating ng pagpunta sa.
Kaya technically ko ay hindi kahit na kailangan upang tumawag ito ejs,
Hindi ko kailangan na pag-andar ngunit iningatan ko ito pare-pareho,
kaya na ito, ito ay kung ano ang ay nagbibigay sa akin na sobrang simpleng form.
Kaya mayroon lamang isang iba pang mga ruta, kung tiningnan namin pababa dito na sinabi ko
na ito ay kung ano ang humahawak makakuha ng iwa paghahanap kaya ang aktwal na pag-uuri
ng Google tulad ng handler para sa bumuo ng pagsusumite, kapag nakakuha ka
tumawag ito ang path na iyon function ng anonymous
at i-render ang template tinatawag na paghahanap
at kung ano ay ang pangalawang argumento siguro ibig sabihin.
Mukhang isang json bagay ng mga klase o Java script object.
Ano ang papel na ginagampanan ng na pangalawang argumento siguro?
>> [Seksyon hindi marinig]
>> Ang aktwal na query na ang sa malas ay nabubuhay gumagamit nai-type sa
sa hiling na tuldok query, query nagre-refer na sa lahat ng bagay
pagkatapos ng tandang pananong tuldok q kung saan ay ang di-makatwirang pangalan
na binigyan ko ito tulad ng ginagawa ng Google
at samantala q tutuldok ay isa lamang sinasabi pumasa sa template,
paghahanap tuldok ejs, isang key ng q at isang halaga
ng kahit anong q ng aktwal na halaga ay.
Kaya umalis na ang isa lamang file ng interes sa tanawin,
paghahanap tuldok ejs iningatan ko sobrang simple na ito masyadong,
Ito ay halos lamang html maliban para sa isa medyo kapansin-pansin na linya
na kung saan ay ang syntax na ito dito na kamukha ng grupo
ng iba't ibang templating engine na ito lamang ay nangangahulugan na plug
sa ang halaga ng q at gawin itong naka-bold.
Kaya walang aktwal na paghahanap pag-andar ngunit ginagawa nito uri
ng iminumungkahi kung paano gagawin mo buuin ang isang balangkas
ng isang application tulad na.
Samantala ... talaga ako Maaaring ipakita ang isa sa iba pang mga bagay,
mapansin na akong magkaroon ako ng ilang mga HTML up dito para sa css file
at Java script file, walang nasa mga file na iyon
sa sandaling ito ngunit napansin na ang doon ay isang pampublikong direktoryo
bilang mas maaga para sinabi ko static na mga file kaya kung pumunta ako
doon mayroong aking direktoryo css,
kung pumunta ako doon doon ang mga estilo ng dot css
at walang mga nilalaman doon
ngunit na kung paano gagawin mo mayroon pampublikong naa-access ng mga file.
Ang lahat ng mga karapatan ipaalam sa tumagal ng isang hitsura sa isa iba pang mga variant dito
at pagkatapos ay gagamitin namin ipakilala isa ideya at break.
Kaya ito ay server 6 ang huling, kaya ito ay halos magkapareho maliban
para sa ilalim ng dalawang mga linya na ganito ang hitsura.
Kaya aktwal na mayroong isang ikatlong linya na iba
ngunit ko na nakatago ... kaya hayaan mo akong bumalik up bahagyang sa gayon ay may isang taong nais
sa-panukala ng kung ano ang nangyayari sa dito sa mga tuntunin lego ni
o teknikal na tuntunin kung ano ang iba't ibang tungkol sa bersyon na ito
may paggalang sa mga mga linya sa tuktok na node.
Ano ba akong magkaroon ng baka tapos na dito at bakit?
Oo, Sharon.
>> [Seksyon hindi marinig]
>> Oo mukhang na hindi ko na inilipat index at paghahanap
kaya hiwalay na direct o isang bagay, Isinasali ko ang out sa kanila
at iyon ang gayon ay halos tulad ng sa Larevel maaari mong ilagay ang lahat ng
ng iyong controller logic sa loob ng ruta dot php
may anonymous function at muli at muli muli
ngunit na file ng kurso makakakuha ng magandang napakalaking
kaya sa mga ruta ng dot PHP kung ano ang pinaka-
ng ka guys ay nai-paggawa ay tinukoy mo ang pangalan
ng isang controller klase o kahit na ang pangalan ng isang paraan
na dapat makakuha ng tinatawag na
kaya ang parehong ideya dito kahit na bagaman ang syntax ay isang maliit na
iba't ibang kaya dito ang paunawa
na mayroon akong sa malas ipinatupad ang aking sariling node js
module at isang module lamang Na Sumusunod ang Java script file
sa totoo isa convention na gagamitin namin makita sa sandali lamang.
Kaya ipinapalagay na ang lahat ng aking pag-andar para sa index
at para sa paghahanap mayroon sa malas Nailagay sa direktoryong ito
at ngayon ako sa pagtawag na buo module o pakete o library,
kahit anong gusto mo mag-isip ng ito bilang,
bilang ng mga ruta sa isang variable na tinatawag na mga ruta.
Kaya tila sa may mga ruta tuldok index ay isang pamamaraan na tinatawag na
index at tila mayroong isa pang paraan na tinatawag na paghahanap
sa ganitong mga ruta module o library
at ako lamang ang routing ito kaya lang na hindi ko ilagay ang lahat ng
ng aking anonymous code sa loob ng aking app file.
Kaya sabihin pumunta sa mga ruta abisuhan mayroong lamang index tuldok js
at kung tiningnan ko sa dito na ito ay ang convention nilalayong ko mas maaga
kaya ito ay medyo arbitrary ngunit ito ang node convention.
Anumang oras mo ipatupad ang iyong sariling node js library,
aka module mo talaga makakaya magsulat ng anumang mga Java script code mo
gusto sa file na ito, ay ito ay boxed napaka nang malinis buhangin
upang ang anumang mga variable sa iyo pumili ng hindi mabangga
may library sinuman tao, mga variable o pamamaraan o anumang bagay
tulad na ngunit ang anumang bagay gusto mong ilantad
sa labas ng mundo Ala ng pampublikong pamamaraan sa Java script
o php o iba pang mga wika mayroon kang upang gumawa ng mapa sa loob
ng isang pandaigdigang bagay na iyon ang may-akda ng node na tinatawag na pag-export.
Kaya sa pamamagitan ng paggawa export dot index ako paglalantad sa mga gumagamit
ng module na ito ng isang pamamaraan na tinatawag na index na maps sa function na ito
kaya anonymous sa sa kanang bahagi kamay
ngunit epektibong ako pagbibigay ito isang pangalan sa kaliwang bahagi
at pag-export ito sa mundo
sa gayon ay maaari mong tawagin tuldok index o tuldok ng paghahanap.
Kaya upang maging malinaw kung nagkaroon din ako isang bagay tulad ng pag-andar foo
in dito na ginawang isang bagay
na pag-andar ng ginagawa walang pasubali maging operational,
maaaring ito ay tinatawag sa ang file na ito ngunit walang isa
sa labas ng mundo malamig kailanman tumawag sa foo
dahil ito ay hindi pa nai-export na sa pamamagitan ng paraan ng ito pagtatanda na tuldok.
Kaya na ang lahat na nangyayari sa,
lahat ng bagay ay mabuti pangalanan na espasyo para sa iyo.
Kaya magresulta sa dulo kung gagawin ko node ng app at i-reload ang pahina ay
na kung ako ngayon maghanap
para sa bar ... pagtakbo mga app na ito ay pareho
ngunit ito lamang ay isang uri ng isang hakbang patungo sa isang mas malinis na pagpapatupad,
tiyak kapag nagsimula ka pagsusulat ng higit pa at higit pang mga code
at iyon ang lahat ng mga ito ay mga.
Malinaw na hindi partikular na sopistikadong o kumplikadong
ngunit mahalagang panimulang punto
para sa kung ano ang iyong magiging unang node js app.
Ano gagawin namin malamang mamaya sa linggong ito o ito katapusan ng linggo
bilang ka Pagtatapos sa php application gagamitin namin sundin
up sa isang medyo simple application para sa koponan upang sumisid
sa katulad sa espiritu sa ang warm up exercise para sa php
na batay sa kalagitnaan ng survey semestre,
kakailanganin ng mga tao ay kapaki-pakinabang pagdaan sa exercise
ng paggawa nang walang kinikilingan simpleng bagay
pero medyo may gabay bago ka talaga pagharap sa isang bagay ng isang bagay na higit pa
sa iyong sariling kaya kami ay follow up sa na
at lubos na magiging dahil sa isang linggo at kalahating
mula ngayon nagpapang-abot nang bahagya may php sadyang.
Ang anumang mga katanungan pagkatapos ay sa ipahayag, sa socket IO
o natitirang pagkalito mula Lunes marahil.
Ang lahat ng mga karapatan kaya sana ay isa sa ang tumagal-a-paraan kaya kalayo
na mayroong para sa ilan sa mga ay tiyak na mga bagay ng maraming mas kaunti
overhead kaysa sa maaari mong Na-sanay.
Kaya ipaalam sa akin kitang ipakilala isa huling ideya,
kaya isang napaka-pangkaraniwang programing tularan
sa Java script na talagang nasa jQuery
sa kamakailang mga bersyon kaya maaaring magkaroon talaga nakita sa diskarteng ito
bago ngunit ito ay din masyadong karaniwan sa mga node js mundo,
ito ay karaniwan sa mga Tim ni sariling library ng bookshelf
sa gayon muling bisitahin namin ito sa isang mas kongkreto halimbawa
sa ilang saglit ay isang solusyon sa code na tulad nito,
ito ay kinatawan ng code Nakita namin sa Monday, kaya mabasa ang file
sa kontekstong ito ay hindi isang tunay na pamamaraan pareho ito sa espiritu
sa fs tuldok mabasa ang file ngunit ipinapalagay na ito ay ilang ginawa lamang
up na paraan na gumagana isang bagay na halos kapareho.
Kaya namin ang bumangga sa ilang mga isyu sa Lunes sa pangkalahatan
kaya kung ano ang uri ng ... kung bakit ay ito ng isang madulas libis,
ito tumawag sa likod tularan ng programing Java script
at sa pamamagitan ng tinatawag pabalik tularan Ibig sabihin ko lang sa diskarteng ito
kung saan ninyo hindi bumalik mga halaga agad
dahil iyon ay maaaring harangan ang server
mula sa paggawa ng isang bagay iba na kapaki-pakinabang, ikaw sa halip ay tumawag sa likod
tulad ng buzzers sa kalugin Shack kapag handa ka na
upang pumasa sa likod ng tugon bilang isang argumento.
Ito ay isang mapaglalang libis
kung saan ito masyadong mabilis nagiging nakakainis kung bakit?
Oo.
>> [Seksyon hindi marinig]
>> Oo, Nagnais ito ay nagiging uri ng hindi nababasa ng karapatan
kung mayroon ka ng lahat ng tawag mga backs at kung ikaw ay adhering
sa mabuting istilo nakakakuha ito ng medyo massively may mga yupi
sa paglipas ng panahon at kasong ituro ko ito Halimbawa kung ikaw uri ng pagsagap
sa pamamagitan nito ay nagre-nilalayong buksan ang isang json file at i-print ito,
tulad na ito at pa namin kumuha ng 8 o 10 mga linya dito
na kung saan ay na-uri-uriin kasumpa-sumpa ng naka-indent,
Nakakuha kami ng try catch na siyang
kung hindi ka pamilyar ay isang handling error diskarteng
na nagpapahintulot sa iyo na subukan ang isang bagay
at kung pagkatapos ay nabigo ito mong abutin ito sana
nang wala ang iyong buong programa pagwawakas ngunit mayroong
kaya magkano ang pagiging kumplikado tulad mo uri ng isipin ng mga ito sa pamamagitan ng
at ang Diyos ipagbawal ang ginagawa namin ng dalawang iba pang mga asynchronous na pamamaraan ng mga tawag,
ang bagay ay na pagpunta sa higit sa dito,
maaari mong isipin na ito ay uri ng isang ulok esthetic ngunit ito
dahil ang tawag pabalik tularan ay kaya karaniwang hindi bababa sa
sa katutubong node code na ito masyadong mabilis maging nakakapagod,
mahirap na pag-debug, ang indentation nagsimulang mahalaga upang maaari mong uri-uriin
habulin ng mga bagay down na ito, hindi lamang isang napaka-masaya na paraan
ng programing.
Kaya kung ano ang kakailanganin ng mga tao nagawa na
sa iba't ibang mga node konteksto kasama ng ang mga ito ay subukan upang gawing simple ito,
os para sa mga pangako Halimbawa ay isa pang paraan ng pag-iisip
tungkol sa pagsusulat ng asynchronous code na biswal na lumiliko ng isang bagay
tulad ng bersyon 1 sa ang bersyon na ito ng 2.
Inaangkin ko at ito ay muli lamang uri ng halo-halong
sa pagitan ng aktwal na code at palsipikado code, ito ay kinatawan
ng kung paano nais mong muling ipatupad na eksaktong parehong bagay,
buksan ang isang json file, parse ito at i-print ito
out gamit ang isang bagay na tinatawag na mga pangako
at ang mga key sintaktik detalye ay
na mayroong isang chaining pagpunta sa dito.
Mapapansin na ang lamang tuldok-kuwit
sa buong ... talagang mahusay sabihin ... hindi ko nais upang linlangin.
Ito ay hindi mahigpit na kinakailangan ngunit maging pare-pareho ipaalam,
mapapansin na ang tuldok-kuwit na tumutukoy sa pambungad na
ng buong statement ay ang lahat ng mga paraan pababa dito.
Kaya habang na-format na ako ito ... uri ng hitsura
tulad ng tatlong mga pahayag, tatlo pahayag na maaari kang makakita
sa Java o iba pang mga wika na mayroon try and catch
at ang pamamahala ng pagbubukod mas pangkalahatang paraan.
Pansinin na lamang chain ko ang balik halaga ng bawat
sa mga pamamaraan na magkasama.
Kaya kung ano ang nangyayari sa, mabasa ang file kung ito ay isang pamamaraan na umiiral,
sa malas sinusubukan ng upang mabasa ang file na ito,
tuldok pagkatapos kaya pagkatapos ay isang napaka- karaniwang pangalan na ibinigay sa mundo
ng mga pangako para sa pamamaraan na dapat isakatuparan
kung nagtagumpay ang mga nakaraang bagay.
Kaya ito ay uri ng tulad ng tagumpay handler, kaya pagkatapos json tuldok-parse,
mahusay json tuldok-parse ay isang paraan lamang
sa global json library at ito ay sumusunod sa malas
upang sa kasong ito ang modelo pangako
kaya sabihin namin namin maaari lamang ipagpalagay na ang tawag ito tao
at kung pagkatapos ay magtagumpay siya itawag sa lalaki at pagkatapos ay
kung na talagang executes console lang mag-log ang data
pinag-uusapan.
Kaya kung saan ay ang error handling, napansin ko na ang pag-uuri
ng napakataas nang walang taros stepped off ito pasamano
at tinawag ito lamang pamamaraan at pagkatapos ay ang pamamaraan na ito
nang hindi na-check para sa mga problema.
Well kung saan ay ang mga problema siguro mapangasiwaan ... sa mga
kaya iba't ibang pahayag ng cache aklatan gumamit ng ibang
balarila ngunit sa kasong ito pagkatapos ay pag-uuri
ng handler tagumpay, cache ay isang uri ng mga humahawak ng error
at dahil hindi namin na-sira ito chain panatilihin lamang namin ang paggamit ng
tuldok pagtatanda na mag-link nang sama-sama ang orihinal na paraan ng pagtawag sa diyos
ng nabasa na file at ang function pananalangin anumang mga error-uri
ng bubble kanilang mga paraan sa pamamagitan ng kadena
hangga't hindi sila aktwal na naka-mapangasiwaan na kung saan ay paraan mas malinis kaysa sinusubukang
haharapin ang mga ito araw- mapahamak hakbang ng paraan
upang ang iyong code napaka mabilis na nagiging hindi tunay na data.
Sa kasong ito kami ay nagke-claim na subukan namin
upang mahuli kung ano ay tinatawag na isang syntax error ito ay mahalagang isang
subclass ng isang mas generic error at kung iyon ang mangyayari paghahabol
na ito ay di-wastong json kung hindi man kung ito ay isang mas generic na error
tayo ay hindi na umaasa lamang sa mas pangkalahatang sabihing hindi maaari
mabasa ang file.
Ngayon ito ay sinadya lamang na maging kinatawan code
ngunit kung iyong-program sa raw Java script o sa Java
o iba pang mga wika na ito ay code pamamaraan mahalagang,
ito ay isang mas tradisyon subukan ang catch statement
at iyon ang esthetic at ang pag-andar na pangako
o sinusubukan upang bigyan ka ng kung saan maaari mong isipin ito
bilang pagsusulat lang try at pagkatapos ay mahuli at pagkatapos ay mahuli hindi nagkakaroon
mag-alala sa bawat solong posible punto
kung saan isang error sa lakas pangasiwaan ... mangyari,
Maaari mo ang lahat ng ito pangasiwaan sa magtapos bilang kinakailangan ng isang maliit na bloke
ng code, at maaari kang kahit na makilala ang kaibhan sa pagitan ng mga error
hangga't maaari sa kasong ito dito.
Kaya ang mga katawagan na makakakuha ka makita sa panitikan na siguro
bilang Tim ay nagtatanghal ng ilang mga ng mga bagay na ito ay masyadong
na may perpektong gusto mo mga pangako upang malutas
at paglutas ng pangako paraan na sa wakas ay bumalik sa gayon na magsalita
ngunit hindi sa isang tradisyunal na paraan ng halaga, kaya alinman magtagumpay
para nabigo ang mahalagang.
Ang lahat ng mga karapatan anumang mga katanungan pagkatapos, hindi ito sinadya upang maging sapat
para sa pagkakalantad sa mga pangako ngunit isang sakit sa modelo lamang
para sa mga code mo Magsisimulang makita.