[Musika nagpe-play] Roger ZURAWICKI: Hi, ang aking pangalan ay Roger Zurawicki, at ako ay sumasaklaw sa ang CS50 Hukay ng seminar. Hukay ay isang bagong framework nakatuon sa mga bagong uri ng web, hindi gumagawa ng PHP mga kahilingan -balik uri ng web nakita natin sa PHPP set, ngunit ang mas dynamic ang JavaScript mga bahagi ng web. Mga bagay Hukay maaaring gawin Kabilang Live na Pag-update at agad na pakikipag sa pagitan ng mga user ng parehong website. Para sa seminar, mayroon kaming -host na code sa aking GitHub. Maaari kang pumunta sa URL na ito at i-download ito. Kung alam mo kung paano gamitin Git, maaari mong mai-clone ang imbakan. Kung hindi mo alam kung paano gamitin Git o hindi gumamit ng GitHub, na ganap fine. Ipapakita ko sa iyo talagang mabilis kung paano namin maaaring pumunta sa GitHub, at mayroong isang opsyon upang -download ng zip doon. Sa sandaling i-download mo direktoryong ito, ikaw Maaari makapagsimula sa pag-play sa aming mga code. Karagdagang impormasyon tungkol sa Hukay maaaring matagpuan sa meteor.com. Sa Seminar folder, ako talaga May ilang Hukay ng mga proyekto na maaari naming gamitin. Isa sa mga folder na mayroon kami sa aming proyekto seminar ay ang todos app. Kaya kung pumunta ako sa ito ko, -install Hukay. Kaya upang patakbuhin ito, kailangan ko lang i-type Hukay, at Hukay ang mag-iinstall. Gaya ng nakikita mo, mayroon kaming upang tiyaking naka-install namin Hukay. Kaya ako lamang ng pagpunta sa patakbuhin ito nang isa pang beses upang matiyak na Hukay Naka-install nang maayos. Habang mayroon akong Hukay -install, maaari kong ipakita sa iyo ang ilang mga live na demo ng Hukay ng site pagpunta live na ngayon sa internet. Mayroon akong isang demo ng aming mga app. Maaari mong i-access ito sa sumusunod na URL. Ito ang gagawin app na aming mayroon sa aming direktoryo seminar. Ang URL para sa ito ay rozu-rabbit.meteor.com. Makikita mo na Hukay ng habilin talaga -host ang iyong mga proyekto Hukay ng libre. At sa dulo ng mga seminar, magagawa mong gawin ito pati na rin. Ito ay isang gawin listahan ng app. At maaari mong mag-sign in, lumikha ng mga account, at magdagdag ng mga gawain. Maaari kang lumikha ng isang account tulad nito. At ngayon, sa sandaling mayroon kang isang account, maaari kang magdagdag ng mga gawain. Halimbawa, ang isa sa mga gawain ko maaaring kailangan upang pumunta kunin ang mga laundry. At kung ikaw ay nasa ito site sa online, ikaw ay talaga makita ang gawaing ito sa ang iyong computer sa real time. Maaari ko bang ipakita sa iyo ng isang mabilis na demo ng ito sa pamamagitan ng pagbubukas rozu-kuneho sa isa pang tab na may parehong URL. At nakita namin na ang parehong data ay lumalabas. Maaari din naming patakbuhin ito sa ng ibang browser. Sabihin ba akong magpatakbo nito sa Safari. Sa ganoong paraan hindi namin naka-log in. Kaya mayroon kaming ang parehong Hukay app, at sa sandaling naglo-load ito, ipapakita namin makita ang parehong data ginawa namin sa unang isa. Gaya ng nakikita mo, hindi ako naka-log in dito. At kapag ang data tseke madla, ito-a-update sa lahat ng mga browser nang sabay-sabay. Ito ay isa sa mga tunay cool na tampok tungkol sa Hukay. Sa halos walang trabaho, mo magkaroon ng isang live na pag-update ng app na ang mga pagbabago sa lahat ng ng iyong device nang sabay-sabay. Kung check ko ang check box dito sa aking listahan na gawin, magkakaroon kami ng, sa aking iba pang mga browser ng Chrome, naka-check ang item na ito. At nangyari ito agad. Lahat ng karapatan. Kaya mukhang Hukay pag-install ay handa na ngayon. Kaya ngayon sabihin bumalik sa todos app at patakbuhin ito nang lokal. Kung mayroon kang isang proyekto Hukay, maaari mong tumakbo lang ito gamit ang command Hukay. Sa sandaling gawin mo ito, Hukay ay gumawa ng ilang paghahanda upang tiyakin na ang lahat ng ang iyong code ay nasa tseke. At pagkatapos ay makikita ito sabihin sa iyo na ang proyekto ay handa na ilalabas. Maaaring kailangan mong payagan ang iyong firewall, kung bloke iyong computer. Kaya kung ano Hukay ay nagsasabi sa akin ngayon ay na ang sa website na ito lokal sa aking computer, maaari kong makita kung ano ang proyekto ay Hukay. Tandaan na sa ngayon, ang aking mga app Hindi ma-access sa internet. Tatalakayin natin kung paano upang dalhin ang iyong Hukay app na may live na site ng kaunti sa ibang pagkakataon. Kaya ako lamang ng pagpunta sa kopyahin ito URL ngayon at pumunta sa Google Chrome. At ito ay ang gawin ilista mula sa halimbawa. Maaari mong makita ang mga ito ipinatupad ang ilang higit pang mga tampok dito. Mayroon kaming iba't ibang mga tab, namin magkaroon ng parehong mga tampok ng account, at maaari naming magdagdag ng mga bagong listahan. Ngayon, isa sa mga tunay magaling na tampok tungkol sa Hukay ay maaari hindi lamang ito gumana sa iyong web browser, ngunit maaari ka ring lumikha katutubong iPhone at Android apps sa pamamagitan ng isang tool na tinatawag na PhoneGap. Kaya ang ilang mga proyekto ay darating pre-configure para sa pagpapatakbo sa iOS, tulad nito todos app. Kaya lahat ng kailangan kong gawin upang patakbuhin ito sa iOS ay nagta-type Hukay, patakbuhin, at pagkatapos ay iOS. At kapag gagawin ko na, Hukay ay maghanda muli ang package. At pagkatapos, sa sandaling handa na ito, ipapakita ito -load ang iOS simulator sa aking utos. Tandaan maaari mo lamang magpatakbo ng iOS apps kung mayroon kang isang Mac computer. Maaari mong patakbuhin ang iyong mga app sa Android sa lahat ng platform. Maaari mong gawin ngayon makita na ang aking iPhone simulator ay dumating up sa aking screen. At sa ilang sandali lamang, Makikita ito load ng app. Kung ginawa namin ito ng kaunti lamang mas maliit upang magkasya sa screen, nakikita namin na mayroon kami sa aming mga iPhone app. At kaya lang hindi namin makakuha ng nalilito, gumawa ng ipaalam Tiyaking hindi namin sa parehong website, ang mga lokal na host 3000. Kaya dito mismo ay isang halimbawa ng Hukay ng app Mayroon akong, ang todos app, tumatakbo sa parehong mga isang telepono at sa isang web browser. At kapag binago ko ang mga bagay-bagay sa web browser, ito agad ang papunta sa telepono. At maaari ko bang tanggalin ang isang bagay sa telepono, at ito ang mga pagbabago sa web browser. Ngayon, normal na lumikha ng mga native telepono app para sa iOS o Android, kailangan mong malaman alinman sa Java o Layunin ng teknolohiya C. Ang paggamit Hukay upang payagan ang JavaScript upang tumakbo bilang sa iyong app ay tinatawag na PhoneGap. Ano ang iyong app tunay ay ay isang web browser. At Hukay humahawak ng lahat ang nakakalito bahagi kasangkot para sa pagdadala na web browser upang iyong iPhone o ang iyong Android device. Maaari mong makita na ang user interface ay makinis, at mukha itong at pakiramdam napaka tulad ng isang native na app. Abisuhan na kung pumunta ako sa bahay screen na ngayon, kumuha din ako ng isang icon. Ito ay hindi isang website tulad ng gusto mong makita sa Safari. Ito ay sarili nitong app. Maaari mong i-install at tanggalin ito kung gusto mo. Maaari Panandalian naming ipakita sa iyo kung ano ang code para sa ganitong uri ng todos kamukha app. Kung tumingin ka sa todos folder, makikita mo ang maraming mga folder. Ngunit sa kabuuan ng seminar, kami ay maunawaan kung ano ang bawat folder ay ginagamit para sa. Sabihin pumunta sa terminal kaya namin Maaari makita ang mga file ng kaunti mas mahusay. Pupunta ako sa pindutin ang Control C upang itigil ang server, at ngayon ako pabalik sa todos app. Mayroon akong iba't-ibang mga folder dito, tulad ng sa folder ng kliyente, ang folder ng server. At mga folder na ibig sabihin lang na lahat ng bagay sa folder ng kliyente maipo-pinaandar sa iyong web browser. Lahat sa isang folder ng server maipo-pinaandar sa isang server. Ano ang gusto kong ituro out na kung ano ang namin ay may kapag nagkaroon kami sa aming pagtakbo ng telepono at ang aming mga web browser, ang mga mga kliyente. Ngunit kung ano ang tumatakbo sa isang terminal, iyon ang server. Mayroon kaming iba pang mga folder, tulad ng Lib, na code library, tulad ng iyong helper -andar, kung saan maaari kang gamitin sa parehong client at server. At pagkatapos ay mayroon kang isang pampublikong folder at mga mapagkukunan na kinakailangan para sa pagkuha ng folder ang iyong mga imahe at iba pang mga CSS load. Kung na-install mo Hukay, kami ay magpatuloy sa tutorial para sa Hukay. Maaari kang pumunta sa URL na ito, meteor.com/install, upang makakuha ng sa linya ng command na ako Nagpakita sa iyo na i-install Hukay. Susubukan naming dumaan sa unang Ilang hakbang na ito upang makakuha ng mas mahusay na sa palagay tungkol sa kung paano i-install Hukay. Ngunit una, sa tingin ko ito mahalaga na sinusuri namin ng kaunting JavaScript. Upang ipakita sa iyo ang ilang mga halimbawa ng kung paano pwedeng isalin sa ating kaalaman C upang JavaScript, na hindi ko na Nilikha ang ilang halimbawa. Ang mga ito sa direktoryo js. Kaya kung sa folder mo ang mga seminar tumingin, mayroong isang folder na tinatawag na js. At in dito, mayroon kaming ilang mga halimbawa. Ay buksan ang unang Hayaan Halimbawa at makita nang masyadong mabilis. Kung ano ang nakikita namin ay ang iyong karaniwang kumusta na utos mundo. Napansin mo sa C na Mayroon pa masyadong ng ilang linya. At bilang alam CS50 mga mag-aaral, kailangan namin ng isang pangunahing pag-andar, at mayroon kaming upang isama ang karaniwang I / O library upang tawagan printf. Tingnan natin kung paano ikinukumpara ang JavaScript Hayaan. Pupunta ako upang buksan ex1.js. Nagkomento out kung ano ang C code magiging ganito ang hitsura, at ang linya sa ibaba ay lahat Kailangan mong patakbuhin sa Node. Hindi mo kailangan ng isang pangunahing pag-andar, mo Hindi kailangang isama ang anumang mga file, at hindi mo na kailangan upang bumalik. Tawagan mo lang console.log. Ito ang katumbas ng iyong printf. At madadala ang parehong argumento printf ginagawa. At upang patakbuhin ito, sa halip na tumatakbo ang gumawa ex1, Gusto mong tawagin lang Node ex1.js. Isulat mo Node at pagkatapos ay ang file, at maipo-tumakbo. Hindi nito ma-pinagsama-sama. JavaScript ay isang kahulugan ng wika. Kaya ito ay hindi kailangang maging Pinagsama-sama bago ito tumakbo. Kung Nais kong patakbuhin ang ex1.c, Kailangan ko bang gumawa muna ito, at pagkatapos ay maaari kong patakbuhin ang executable upang makakuha ng parehong resulta. Ng mabilis na masakop ang ilan Hayaan iba pang mga konsepto JavaScript. Tingnan natin ang halimbawa ng dalawang Hayaan. Sa ex2.js, sa ex2.c, kaya namin makita na mayroon kaming ilang code. Hayaan akong mabilis na pumunta sa isang mas mahusay na editor ng teksto na ipapakita ang mga mga bagong linya ng mas mahusay ng kaunti. Lahat ng karapatan. Narito mayroon kaming Halimbawa 2.c. Narito mayroon kaming iba't ibang mga uri na namin ang pag-print out. At bilang alam namin, printf ay tumatagal ng iba't ibang bahagdan argumento i-access ang iba't ibang mga piraso ng data. Kung gusto naming i-print isang string, tinatawag naming% s. Kung gusto naming tumawag sa isang Lumulutang bilang punto, na tinatawag naming% f. At walang madaling paraan upang tumawag sa isang Boolean sa pamamagitan nito tama o mali halaga. Ngunit kung gumamit ka ng% d, maaari kang makakuha ng isang 0 o 1 para sa mga maling at totoo. JavaScript ay isang bit nicer para sa amin. Sa JavaScript, tingnan natin ang ilang ipaalam pagkakaiba na mayroon kami sa file na ito. Una, napansin mo na sa C na mayroon kami upang simulan ang bawat variable sa isang uri. S ay isang pansamantalang trabaho star. Ito ay isang string, at ito Hindi maaaring anumang iba pang uri. N ay isang float. B ay isang Bool. Ngunit sa JavaScript, may mga dynamic na uri. Nangangahulugan iyon na hindi mo gusto kailangang sabihin sa JavaScript kung anong uri ang iyong mga variable ay magiging. Ikaw sabihin lang var para sa variable, ang pangalan ng variable, at pagkatapos ay ang halaga nito. Kaya maaaring maging isang var kahit ano talaga. Maaari itong maging isang string. Maaari itong maging isang lumulutang na numero punto. Maaari itong maging isang character. Maaari itong maging isang Boolean. At console log gumagana ng kaunti naiiba. Kung nais mong i-print isang numero, tumawag ka ng% d. Ngunit karamihan ng mga halaga ay maaaring maging naka-print bilang mga string lamang fine. Ni patakbuhin ito sa Node Hayaan upang makita kung ano ang mangyayari. Maaari ko bang tumawag sa Node ex2.js, at makuha namin printf kasama ang halaga ng CS50, N bilang ang mga lumulutang na numero punto, at pagkatapos ay b bilang ng Boolean -convert sa isang string totoo. Paano kung ginawa namin Halimbawa 2.c? Well, mayroon pa rin kaming ilang higit pa annoyances sa printf. Pansinin na ang mga lumulutang na tuldok numero ay dapat na-format nang tama, at na hindi ang Boolean maaari lamang ipapakita bilang totoo o hindi. Lahat ng karapatan. Ngayon tingnan natin ang halimbawa ng tatlong ipaalam. Sa halimbawang tatlong, kami ay nagpapakita ng kung paano mo maaaring gamitin ng isang para sa loop. Sa katunayan, ito ay napaka-simple. Isa sa mga magaling na mga bagay tungkol sa Ang JavaScript ay na ito ay batay C. Ay nangangahulugan na ang marami sa iyong mga code ang magiging hitsura halos katulad na at pakiramdam napaka halos parehong. Sa isang para sa loop, ang tanging bagay na talagang nagbago dito ay sa halip ng int i, mayroon kaming var i. Maaari pa rin namin italaga ito upang mapahalagahan zero, tingnan na ito ay mas mababa sa limang, at dinagdagan ito ng isa sa ++ operator. Tinatawag namin console.log sa i, at na ay mag-print sa amin ng isang numero sa bawat linya. Tumakbo natin ito talagang mabilis Hayaan upang makita kung ano ang output ito. Kumuha kami ng bagong numero sa bawat linya. Isa pang bagay na gusto ko sa iyo upang mapansin na may console.log Hindi mo na kailangang isulat backslash n para sa bagong linya. Console.log ay i-print lahat ng bagay sa sarili nitong linya. Iyon ay isang magaling na tampok na JavaScript ay nagbibigay sa amin. Ngayon ay buksan ang halimbawa apat na ipaalam. Sa halimbawang apat, una sa C, pagtawag kami ng ilang mga pag-andar. Pansinin na mayroon kami na idedeklara ang -andar bago naming gamitin ang mga ito sa pangunahing. Kung nagkaroon kami pangunahing una at pagkatapos ay idagdag at pagkatapos ay mataas na, gumawa ng, kalatungin, o GCC ay bigyan kami ng isang error na nagsasabi na ito ay hindi alam kung ano ang mataas ay. Hindi nito alam kung ano ang pagdaragdag ay. Kaya sa C, mayroon kang maging picky tungkol sa pagkakasunud-sunod kung tawagan mo ang iyong mga pag-andar. Tingnan natin kung paano maaari mong hayaan ang gawin ito sa JavaScript. Mayroon kaming iba't ibang mga file dahil doon ang ilang iba't ibang mga paraan upang magawa ito. Ang isang paraan ay medyo marami isang direktang pagsasalin. Dahil function sa C bumalik uri, at JavaScript hindi talaga alam o pag-aalaga tungkol sa kung ano type ka bumalik, hindi mo magsulat ng isang uri. Sa halip, kailangan mo lang isulat ang mga function, at lahat ng bagay ay medyo halos parehong tulad ng dati. Kapag mayroon kang isang variable, tulad ng sa magdagdag, kailangan lang namin na magsulat x at y. Hindi namin kailangang sabihin x ay isang int. Hindi namin kailangang sabihin y ay isang int. Bumalik kami na may parehong syntax. Para sa mataas, ipinahahayag namin ito sa gumana sa halip na walang bisa. Pansinin na kung ito ay walang bisa o hindi-walang bisa, lahat ng ito ay ang parehong pag-andar pa rin. At kami lang huwag maglagay anumang bagay na nasa panaklong, at mukha itong napaka halos tulad ng C code. At sa ibaba, maaari namin itong tumawag sa ibaba. Kung tinitingnan namin ang halimbawa 4b, napansin namin na nagbago ako ng ilang mga bagay. Ang tanging bagay na iyong binago ko talagang kahit na ang order. Mayroon kaming pareho -andar, ngunit ngayon ang mga ito ay ipinahayag pagkatapos na ginamit sa console.log at mataas sa linya 18, 19. Kung ginawa mo ito sa C, gawing gusto magtapon ng isang error. Narito, ito ay gumagana lamang multa. At maaari kong ipakita ito sa iyo sa pamamagitan ng Node sa 4b halimbawa pagtawag. Ang isa pang paraan na maaari naming tumawag sa mga function ay sa pamamagitan ng pag-save ng pag-andar bilang variable. Tulad ng sinabi ko, sa isang variable ay maaaring magkaroon ng anumang uri. Ang isa sa mga uri ng variable ay maaaring magkaroon ay isang pag-andar. Kaya kung tiningnan mo ang halimbawa 4c, kung ano ang nabago ko dito ay var magdagdag sa halip na function ng add. At ngayon ay katumbas magdagdag ng isang function. Ang pagpapaandar na ito dito ay ang hindi kilalang. Ito ay walang pangalan, kaya lang -andar at pagkatapos ay ang mga panaklong. Ang syntax pagkatapos na ay hindi nagbabago, ngunit kailangang tandaan na mayroon kang isang variable na ikaw ay pag-iimbak ang pag-andar sa add, at isang variable na naka-iimbak ng sa mataas. Dahil magdagdag at mataas na mga variable ngayon at hindi na function, isang bagay na pagbabago. Ito ay isang pangkaraniwang bug nakikita ko sa Marami JavaScripts ng mga tao, at isang bagay na dapat tandaan. Kapag nagpatakbo ako ng ito, sabihin makita kung ano ang mangyayari. Nakakatanggap ng error. Ay nagsasabing hindi natukoy sa puntong ito. Kaya ang sinasabi nito ito Hindi alam kung ano ang idagdag ay. Dahil ngayong magdagdag ay hindi isang function, idagdag ay isang variable. At hindi ka talagang ibinigay magdagdag ng halaga pa kapag ginagamit mo ito. Na pinagsasama-amin sa halimbawa 4d, kung saan kung nais mong gamitin ang variable tulad ng mga pag-andar, kailangan mo lamang upang matiyak na makuha ang halaga bago sila ginamit. Ay lumipat sa halimbawa limang pagkatapos ay hayaan. Dito, makipag-usap namin tungkol sa structs sa C. Sa C, structs Mayroon ito nakapirming istraktura sa mga ito dahil mayroon kang idedeklara ito bago mo gamitin ito, at sasabihin mo ba akong magkaroon ng isang mag-aaral, at bawat mag-aaral ay may eksaktong ng isang pangalan, isang taon, isang kasarian. Ito ay upang magkaroon ng lahat ng ito. Hindi ito maaaring mayroon kang anumang iba pang mga halaga, at mayroon sila upang maging partikular na mga uri. Pagkatapos ay maaari naming simulan ang struct sa magaling syntax dahil alam ito sa pagkakasunud-sunod. Kaya alam nito na Roger ay isang pangalan. Alam nito na ang 2016 ay isang taon at M ay isang kasarian dahil sinabi namin ito sa ganitong listahan ay isang struct mag-aaral. At pagkatapos ay maaari mong i-print ito,-access s.name. Tingnan natin kung paano Hayaan ang gagawin namin -convert na sa JavaScript. Pansinin na s ay isa na ngayong variable, at walang uri. Muli Ito ay isang var lamang. Dahil hindi mahalaga kung ang uri ng variable na ito ay isang pointer, ito ay isang struct, o anumang bagay. Mayroon kaming bahagyang naiiba syntax. Syntax na ito ay ang bagay na syntax. Maaaring nakita mo ito sa JSON. JSON talaga ang ibig sabihin ay ang JavaScript Bagay pagtatanda. Ito ay kung paano mo tukuyin ang bagay sa JavaScript. Mayroon kaming isang susi, na ang halaga, tulad ng pangalan. At bibigyan namin ito halaga sa ang iba pang mga bahagi ng colon. At isang bagay na dapat tandaan ay sa iyo hindi na kailangan upang magkaroon ng isang pangalan at isang taon at kasarian para sa isang bagay. Isang bagay na maaaring magkaroon ng mga halaga. Maaari itong magkaroon ng maraming hangga't gusto mo. Maaari naming gamitin ang mga bagay na ito sa loob lamang ng parehong paraan na gusto naming gamitin ang isang struct, s.name. Maaari natin itong tumakbo nang mabilis talaga sa pamamagitan ng paggawa ng node halimbawa 5.c. Hindi namin maaaring aktwal na magpatakbo ng isang C file sa Node. Hindi nito alam kung ano ang C ay. Alam lamang nito ang JavaScript. Kapag nagpatakbo namin ang ex5.js, makakakuha tayo ang halaga, na inaasahan namin. Ay lumipat sa halimbawa anim Hayaan. Narito gusto ko lang makipag-usap ng kaunti kaunti pa tungkol sa array JavaScript dahil ang mga ito ay isang bit naiiba sa kung ano ang iyong ginagamit upang sa C. Ang mga array ay notated, hindi sa bracket tulad ng sa C, may kulot tirante, ngunit bracket. Maaari kang magkaroon ng isang walang laman na array, tulad ng arr sa apat na linya. Maaari kang magkaroon ng array may maramihang mga halaga. At i-access mo ang mga ito lamang ang parehong paraan sa C. Hanggang sa line pitong, ang lahat ng bagay Mukhang prangka. Isang menor de edad pagkakaiba ay dito sa linya 10. Ang paraan kang makakuha ng isang haba ng isang array ay isa lamang sa pamamagitan ng pagtawag .length. Isang array ay maaaring talagang maging tratuhin tulad ng isang bagay, at ang bagay na ito ay may haba ng ari-arian na tawagan ka upang makuha ang haba nito. Pansinin na ito ay iba sa C dahil sa C mo Mayroon bang malaman ang haba ng maagang ng panahon ang iyong mga bagay. Kaya isa pang magaling na bagay tungkol sa array ay na maaari mong magkaroon ng iba't ibang mga uri. Kung mayroon kang isang array sa C, may mga array ng isang tukoy na halaga, alinman sa isang struct pointer o sa kamay o [hindi marinig]. Dito, maaari kang magkaroon ng iba't ibang mga halaga. Ako unang nagkaroon ng mga lumulutang na numero punto, pagkatapos ng Boolean, pagkatapos ng isa pang integer. At talagang, maaari nilang baguhin ang mga uri ng masyadong. Tumingin sa 16 linya. Array ng dalawang Nagbabago mula sa pagiging isang numero, isang integer, na isang string. Ang isa pang magaling na bagay tungkol sa array ay dito sa 19 linya, ang mga ito ay walang katapusan na laki. Maaari mo lang sabihin na gusto ko ang isang bahagi ng isang daan elemento upang maging string legit. At ito ay hindi mukhang upang gawing kahulugan dahil ang array lamang May espasyo para sa mga tatlong elemento, kaya ang pagtatapos ay dapat na dalawa. Ngunit kapag ginawa mo ito, sabihin tingnan kung ano ang array tatlong nagiging. Gusto naming patakbuhin ito nang mabilis may node halimbawa six.js. Makuha namin ito talagang mahaba array, at kung ano ang mangyayari ay mayroon kaming ang unang ilang mga elemento at pagkatapos ng isang bungkos ng mga patlang hanggang sa makuha namin ang aming mga string. JavaScript ay pumupuno sa array bilang ito kinakailangan. Sabihin sa wakas pumunta sa aming huling halimbawa. Narito kami ay may isang listahan ng iba't ibang mga mag-aaral. Gusto kong makipag-usap ng kaunti bit tungkol sa ilang magaling na aspeto ng para sa loop sa JavaScript. Sa C, para sa mga loop ay uri ng limitado. Ang mga ito ay isang nakapirming istraktura, kung saan mo may isang variable, mayroon kang isang kondisyon, at pagkatapos mong gawin ang isang bagay sa dulo ng loop. At siyempre ito gumagana sa JavaScript, bilang nakita natin sa nakaraang mga halimbawa. Ngunit mayroon rin kaming nicer paraan ng paggawa nito sa JavaScript. Ito ay tinatawag na isang foreach loop. Paumanhin, sabihin bumalik sa halimbawa pitong dito. Maaari din naming sabihin seksyon ay isang listahan. Kaya ninyo ako araw-i o araw-index sa listahang iyon. Pagkatapos ay maaari naming makakuha ng mga mag-aaral sa pamamagitan ng seksyon ng i pagtawag lamang. Kaya ang lahat ng mga code ng pagtatakda ng i katumbas ng zero at pagtiyak na i Mas mababa kaysa sa haba at pagdaragdag ng isa upang i bawat oras, na ng sa iyo sinisigurado sa halip mabuti na may ganitong foreach loop. Hindi lamang gawin foreach loop magtrabaho sa listahan o array, sila rin magtrabaho sa mga bagay, kung saan maganda rin. Maaari mong makuha ang pangalan ng bawat ari-arian sa pamamagitan ng pagkuha lamang isang diksyunaryo o isang bagay, tulad ng mag-aaral, at pagkatapos lamang na sinasabi ninyo ako sa bawat key. Ang isang pangunahing ay magiging mga ari-arian, pangalan o bahay. Kaya kung ano ang nangyayari sa mangyari dito ay -print namin out muna ang pangalan at pagkatapos ay bahay ng bawat mag-aaral. Maaari ko bang patakbuhin ang sa Node talagang mabilis na ipakita sa iyo. Kumuha muna namin ang estilo C para sa loop, kung saan makuha namin ang bawat object pag-print. At pagkatapos ay mayroon kaming ang JavaScript estilo, kung saan maaari mong lamang i-print ang bawat key at pinahahalagahan nang paisa-isa. Lahat ng karapatan. Ngayong na-sakop namin Node.js, sa palagay ko Ikinalulungkot handa na upang makapagsimula sa Hukay namin. Tulad ng sinabi ko, Hukay ginawang isang mahusay na trabaho ng pagsusulat ng ilang mga nalikha na na halimbawa para sa iyo na maaari mong galugarin sa pamamagitan ng ang tutorial na ito o sa seminar folder. Ngunit dito gusto kong simulan ang higit pa mula sa simula. Ay lumikha ng isang simpleng gawin application Hayaan. Ito ay uri ng batayan ng kung ano ang sa gawin application ay nagpakita ako sa iyo ng mas maaga ay. Sa tutorial na ito, ikaw ay makikita na mayroong isang command Hukay lumikha sa lumikha ng isang bagong proyekto Hukay. Kailangan mong tawagan ito upang upang magpatakbo ng Hukay ng mga proyekto dahil ito Tatakbo ang mga utos upang lumikha ng mga Hukay Ang mga file na kinakailangan para sa iyong proyekto. Kung pumunta ka sa terminal, kaya namin pumunta sa folder na tinatawag na unang hakbang. At hakbang isa ay sumasang-ayon sa ang unang hakbang sa tutorial. Abiso may mga folder, step isa, step ng dalawa, ang lahat ng mga paraan upang lima. At ang bawat isa ay nakaayon sa isang hakbang sa tutorial na ito. Pupunta ako upang buksan ito sa aking text editor dito upang maaari naming makita ang isang bit ng kung ano ay nalikha. Napansin namin na may apat na pangunahing mga bahagi. Mayroong isang direktoryo Hukay, .meteor. At iyon na karaniwan mong Hindi kailangang pindutin. Hukay tumatagal ng pag-aalaga ng folder na iyon, at ito lamang tinitiyak na ang iyong proyekto ay gagana ng wasto. Mayroon din kaming tatlong mga file, isang file na HTML, isang JavaScript na file, at isang CSS file. Sa unang magsimula sa file na HTML Hayaan. Sa unang tingin, mukhang ito tulad ng isang normal na HTML na dokumento. Ngunit mapansin na mayroong ang ilang mga pagkakaiba. Ang isa, ito ay hindi tunay isang kumpletong dokumentong HTML. Kami ay nawawala ang mga tag na HTML. Ito ay normal. Sa Hukay, hindi ka inaasahan upang lumikha ng mga tag na HTML. Na ginawa para sa iyo. Gusto mong begin-- kung nais upang lumikha ng isang website, kailangan mo lang upang magsimula may ulo tag, tukuyin iyon, at pagkatapos ay tukuyin ang mga tag katawan. Ngunit kung napansin mo sa HTML file, mayroon kaming isang bagong tag. Mayroon kaming ang tag template. Ito ay hindi normal na HTML. Ito ay isang espesyal na bersyon ng HTML Hukay na ginagawang magagamit mo. Ito ay tinatawag na espasyo bar. Maaari mong tukuyin ang mga template ng kasing-baba mga module, uri ng tulad ng helper function, sa iyong C o JavaScript code. Ang template na ito gagawin na may pangalan ang tinatawag na gawain. At maaari mong makita dito mismo sa linya 13 na maaari mong tawagin ang mga template na ito. At kung ano Hukay ang gagawin lamang punan ang mga gawaing ito para sa iyo. Isa pang bagay na maaari mong mapansin ay isang bit iba't-ibang ay ang bawat function. Ang bawat ay kukuha ng variable mga gawain at uri ng pumunta sa pamamagitan nito sa na foreach loop namin Nakita sa halimbawa pitong. Ang bawat ay maaaring tumagal ng isang diksyunaryo o isang listahan, isang object o isang listahan, at makikita ito pumunta lamang sa pamamagitan ng lahat ng mga mga halaga tulad ng isang foreach loop ginagawa. Kaya kung mayroon kaming ng grupo ng mga gawain, ito Tatawagan ng template sa bawat gawain. Magpatakbo ng mga proyekto Hukay Hayaan upang makita lamang na nangyari ito. Ba akong magpatakbo ng mga proyekto Hukay sa Hukay lamang o Hukay tumakbo. At ngayon Hukay ay kailangan lamang upang mabilis na ihanda ang proyekto, simulan ang database kung kinakailangan, at pagkatapos ay mag-post ang app nang lokal. Maaari naming pumunta sa aming web browser ngayon. At kami makita na namin magkaroon ng isang napaka-simpleng app. Kaya kung ano ang nakita namin ipinakita up ay talagang ang unang hakbang, ang hakbang sa isang file. Ay magpatuloy sa hakbang ng dalawang dahil lamang Hayaan Sa tingin ko ito ay maglingkod ng parehong layunin. Lamang ako pupunta upang baguhin sa hakbang dalawang direktoryo at patakbuhin muli Hukay upang maaari naming makita ang template nagtrabaho lang namin na may. Oo, isang tanong? Madla: Kung kami ay nakakakuha ng pahintulot tinanggihan, ay that-- kung ano ang ito na tinatawag na para sa? Roger ZURAWICKI: Kung nagpapatakbo ka Hukay run, at mayroon kang pahintulot tinanggihan, ang ilan sa iyong mga file Maaaring hindi magkaroon ng karapatan na hanay ng pahintulot. Kaya kailangan mong suriin kung saan Naka-off ang mga pahintulot. Maaaring maging off sa iyong proyekto Hukay, o maaari silang maging off sa Hukay ng mga file ang kanilang mga sarili. Madla: Kung na-download ko ito ngayon lang mula sa iyong GitHub, pagkatapos ay kung ano ang dapat kong gawin [Hindi marinig]? Roger ZURAWICKI: Kung gusto mong upang matiyak na maaari mong i-access ito, mayroong isang command maaari mong patakbuhin. Hayaan akong mabilis na isulat ito kaya iba pang mga tao ang maaaring makakita nito. Pupunta ako upang magbukas ng bagong tab dito at pumunta sa aking seminar folder. Chmod ay ang command upang baguhin ang mga pahintulot, at maaari mong sabihin r para gawin ito recursively para sa bawat file. At mga pahintulot, maaari mong subukang 0755 upang matiyak na ikaw ay mayroong ganap na access, at ang iba ay maaaring basahin. At kung nagpapatakbo ka lamang command na ito, ito ay gumawa ng mga Siguraduhin na ang mga pahintulot ay nasa -check para sa buong direktoryo. Maaaring ipakita sa iyo sa pagtakbo l-l ang mga pahintulot sa karagdagang detalye. Mukhang ito ang OK. Ano ang pinaka-Mahalaga ay na mayroon ka ng lahat ng tatlong mga rwx para sa lahat ng mga file sa ang direktoryo ng seminar. Ibig na malutas ang problema? Madla: Sinasabi nito na nawawala operant [hindi marinig]. [Hindi marinig] Roger ZURAWICKI: mo Mayroon upang matiyak na magkaroon ng isang tuldok sa dulo ng iyong command. Madla: [hindi marinig]. Roger ZURAWICKI: Ang lahat ng karapatan. Ipaalam sa amin mabilis na bumalik sa lokal na host, ang app na mayroon kami. At makikita mo na mayroon kaming ilang mga gawain dito, tulad ng inaasahan. Mayroon kaming isang bungkos ng CSS, na hindi mo kailangang mag-alala tungkol. Ang Hukay ng tutorial Binibigyan lang ito sa iyo upang gawin ang iyong gawin listahan hitsura ng bit nicer kaysa sa simpleng HTML. At mayroon kaming ang JavaScript na file, na Makikita ba akong mas detalyado ang isang bit sa ibang pagkakataon, ngunit nagbibigay lamang ito ang mga gawaing ito. Ito ay isang gawain. Ito ay gawain ng dalawang. Ito ay gawain tatlo. Kaya ito ay ang data Hukay Nagiging. Isa sa mga cool na bagay tungkol sa Hukay ay na ang mga pagbabago ay maaaring awtomatikong mangyari. Kung Nais kong baguhin ang pangalanan ng unang gawain, kaya ito ay sinasabi na ito ay hindi gawain ng isa, at ako i-save ito, pagkatapos ay kapag pumunta ako sa web browser, maaari mong i-refresh ito, at awtomatiko itong sabi ito ay hindi gawain ng isa. Maaari mong gawin ang parehong bagay sa alinman sa mga file na ito. Gumawa ng pagbabago, sa halip na gawin listahan, ako ay mayroon itong gawin sa aking listahan. At isang bagay na napansin mo lamang, na ako ay hindi kahit na mayroon upang i-refresh. Ang ideya ng nakakapreskong ay uri ng nalutas na para sa iyo na may Hukay. Sa tuwing nakita nito ang mga pagbabago na file, maglo-load ito ang mga pagbabago para sa iyo. Ito ay gumagana sa lahat ng mga file, kung ito ay HTML, CSS, o ang JavaScript. Upang ipakita sa iyo kung ano ang magiging hitsura ng app na ito tulad nang walang CSS, maaari ba akong mag-alis ng lahat ng ito. At kapag ito ay reload, mayroon ka na ngayong isang hindi bilang kaakit-akit na gawin listahan. Ilagay na nilalaman muli Hayaan. At tiyak na sapat, ito nagre-refresh, at ang aming CSS ay bumalik. Mahusay. Maaari na ngayong ilipat sa kami kasama ang tutorial. Makipag-usap tungkol sa hakbang ng dalawa, ng mga template Hayaan. Ito ay kung ano ang nakita natin lamang may iba't ibang mga gawain. Hukay ay magpapaliwanag sa iyo kung ano ang mga template at kung paano gumagana ang logic na ito. Ngunit tumingin lang ng sa code upang ipaalam makita kung maaari naming magkaroon ng kahulugan out ng ito. Sa napaka-simpleng application, tulad ng kung ano ang mayroon kami sa simpleng gawin, unang hakbang, step ng dalawa, na hakbang tatlo, apat na hakbang, hakbang sa limang, wala kaming anumang mga folder. Wala kaming server folder nabanggit ko. Wala kaming client folder na nabanggit. Kaya Hukay tatakbo ang lahat ng mga file. Ito magpatakbo sa parehong mga ito sa client, parehong sa server. At kung gusto mong bahagi ng iyong JavaScript code upang tumakbo lamang sa client, kailangan nila upang matiyak na mayroon kang isang kung pahayag, uri ng tulad ng kung ano ang mayroon kaming sa aming JavaScript file dito. Kaya Hukay, kapag lamang ito ang kliyente, pagkatapos ay ako gusto na tukuyin ang isang template helper na tinatawag na mga gawain. Ano ang code na ito talaga Nagbibigay ba ay sinasabi nito na mayroong isang bagay na tinatawag na template Hukay na nagbibigay. At kami ay pagpunta sa magdagdag ng isang helper. Helpers ay ang mga gawaing ito, mga bagay tulad ng mga gawain. Makikita mo na kung pumunta namin pabalik sa HTML file, na tinatawag naming ang bawat isa sa mga gawain. Gawain ay hindi natukoy sa HTML. Ito ay tinukoy sa JavaScript. At kailangang Hukay malaman kung ano ang mga gawain ay kapag kami pumunta sa JavaScript dito. Gawain ay helper ito. Helper, maaari mong isipin ito bilang isang variable na template. At ano ang mga gawain gawin? Well, nagbabalik ito sa listahan ng mga halaga. Dahil ito ay isang listahan, maaari naming tawagan ang isa't sa loob nito. Kaya na ang dahilan kung bakit tinatawag naming ang bawat isa sa mga gawain. At ngayon ay mayroon kaming gawain. Ano ang gawain gawin? Well, ito ay ang arrow dito matapos ang kulot tirante. Iyon ay nangangahulugang ang gawain ay isang template. Ito ay hindi isang lingkod, tulad ng kung ano ang nakita natin lamang. Ito ay isang template na tinukoy namin. At kung saan natukoy namin ito? Natukoy namin ito sa ibaba dito mismo. Lahat ng mga template na ito ay ay render isang item sa listahan, at ito ay tinatawag na teksto. Ngayon, mukhang may teksto helper ngunit ko makikita ipakita, mo na ito ay talagang pa rin isang miyembro ng data ng mga gawain. Kapag tumawag ka sa bawat isa, ito ay pumupunta sa ang istraktura ng data nang kaunti. Tulad ng foreach loop, ito ngayon lamang ang hitsura sa unang elemento sa aming mga bagay. Nakakakita kami ng teksto na tinukoy dito sa aming object. Kaya Hukay ang smart upang malaman na kami ay pakikipag-usap tungkol sa tekstong ito, hindi ang helper na tinatawag na teksto. Ay nakakakuha Ito lang ang value ng teksto dito at ipapakita ito bilang HTML, at iyon ang kung paano maipatupad ang data mula sa JavaScript sa HTML. Paglilipat sa bagaman, sa halimbawang ito matapang na namin ma-code ang mga halagang iyon. Hukay ang dalawang talaga maganda ang mga bagay para sa amin. Bukod sa live na pag-refresh na namin Nagpakita, namamahala rin ito sa aming database. Kung nagkaroon ka ng upang gumana sa PHP, kailangan mong i-configure ang phpMyAdmin. Ay nagkaroon ka ng upang siguraduhin na ang iyong mga talahanayan ay lahat sa tseke. Nagkaroon mong gawin ng maraming trabaho upang gawin Siguraduhin na ang iyong data ay naka-format ng tama, at PHP ay maaaring makipag-usap sa mga ito. Ngayon, Hukay ay gumagamit ng isang bagong tularan. Ito ay isang mas modernong paraan ng paghawak ng isang database. Ito ay isang teknolohiya na tinatawag na MongoDB. Tulad ng sa JavaScript, nakita namin na ito Hindi mahalaga kung anong uri nagkaroon ng data. Lahat ng var. Ito ay hindi isang charstar. Ito ay hindi isang int. Ito ay hindi isang struct. Ito ay var ito lamang, var iyon. Gumagana MongoDB uri ng sa parehong paraan. Wala kang tukuyin ang iyong mga talahanayan. Hindi mo na kailangang sabihin ng talahanayan May pangalan, na may isang int. Mayroon, hindi ko alam, isang dolyar, na isang decimal. Ito ay lamang ang mga bagay JavaScript, lahat ng mga vars, mahalagang. At ito ay isang talagang malakas paraan upang tularan ang iyong app. At iyon ang dahilan kung bakit Hukay tumatagal ng bentahe ng ito. Kung pumunta kami sa hakbang tatlo, tingnan natin kung ano ang nagbago. Kung tinitingnan namin ang mga todos HTML, hindi magkano. CSS ay hindi nababago. Ngunit ang maliit na pagbabago na nakikita namin sa HTML ay nagbago namin ang mga gawain kung paano ay tinukoy. Mga Gawain ay isang function ngayon. Nangangahulugan iyon na ang bawat oras na nais namin upang makakuha ng mga gawain, kami ay pagpunta upang patakbuhin ang function na ito. Hindi nito ibalik ang -andar bilang isang halaga. Hukay ang smart upang aktwal na patakbuhin ang -andar upang makita kung ano lumayas namin. At ito ay nagbalik bagay na ito na tinatawag na mga gawain. Nilinaw namin ang mga gawain sa linya ng isa, at ito ay isang Mongo koleksyon. Mongo ay nagre-refer sa ang database Hukay ng gumagamit, at ang bagong lamang ay nangangahulugan na gumawa ng ipaalam isang bagong koleksyon, tawagan ito gawain. Sa MySQL, ito ay magiging katumbas ng naghahanap ng talahanayan na tinatawag na mga gawain. Mongo ay may mga koleksyon, hindi table. Kaya ito lamang ang hitsura para sa mga gawain. Ngayon, template sa aming helper sa template, ang lahat ng dapat nating gawin upang makakuha ng lahat ng mga mga gawain ay ang function na ito, hanapin at walang laman suhay. Ito ay mas partikular na sa Mongo syntax. Mayroong maraming dokumentasyon sa online para sa kung paano maaari kang gumawa ng mahusay at talagang kapaki-pakinabang na mga query Mongo. Ngunit isang bagay tulad na ito ay mabuti sapat na para sa paghahanap lamang ang lahat ng data. Ngayon, isa sa mga isyu na maaari mong makita ay na aktwal na kami ay hindi kailanman magdagdag ng data. Kaya kung ano ang mangyayari kapag namin talaga tumakbo ang hakbang tatlo? Sabihin mabilis na pumunta sa hakbang tatlo at mapatakbo Hukay. Pansinin na nagkaroon ako ng isa pang Hukay proyekto na tumatakbo sa ibang lugar, kaya Hukay ang hindi nagkagusto na. Lamang ako ng pagpunta sa mabilis na malapit sa ang iba pang mga Hukay gamit ang Control C, pumunta sa hakbang tatlo, at patakbuhin muli Hukay. Pansinin ito ay nagsisimula MongoDB dahil MongoDB ay isang bahagi ng bawat proyekto Hukay. Kaya sinasabi nito na ang aking application ay may mga error. Iyon ay isang magaling na tampok Hukay May. Ginagawang siguraduhin na ang inyong HTML ay mahusay na napatotohanan. Ay mabilis na makita ang dahilan kung bakit ito ay maaaring maging Hayaan. Mukhang mayroon ko sinasadyang kinopya sa maling HTML code. Kung i-save ko ito ngayon, Hukay Awtomatikong i-restart ang server, at ngayon ang app ay tumatakbo tulad ng inaasahan. Pansinin na ayusin ito, maaari mo lamang tumakbo parehong file na HTML mula sa dalawang hakbang, kopyahin ito sa hakbang tatlo. Maaari naming bumalik sa aming mga lokal na host. At ngayon nakita namin na mayroon kami sa aming gawin listahan. Mahusay, ngunit ito ay walang laman. Hindi kami talaga mayroon kayong mga mga gawain sa aming Mongo database. Kaya ipaalam makipag-usap tungkol sa isang ilang mga paraan na maaari naming gawin iyon. Kung pumunta namin pabalik sa terminal, namin maaari itong isara at magpatakbo ng Hukay ng Mongo. Kung pamilyar ka sa kung paano gumagana Hukay, ito talagang nagbibigay sa iyo ng access upang ang buong MongoDB para sa Hukay. Pansinin na mayroon ka upang patakbuhin ang Hukay muna para gumana ito. Kaya kung nagpatakbo ako ng ito sa isang bagong tab, ako makakabalik sa parehong directory. At ngayon Hukay gumagana lamang fine. Ito ay isang prompt. Hayaan akong gumawa ito ng kaunti Mas malaki upang maaari naming makita. Ang hitsura ng isang bit naiiba kaysa ito kung ano ang maaari mong gamitin sa iyo hindi talaga kailangan na gumamit ng Mongo. Ang buong punto ko dito ay sa gayon ay maaari mong gamitin ang JavaScript. Ngunit kung gusto mong malaman, ang Mongo API ay hindi gamitin ang SQL, ang Naka-istrakturang Wika Query. Ito ay gumagamit ng sarili nitong wika na mukhang ng maraming tulad ng JavaScript. Masyadong mabilis, maaari naming makita ang talahanayan sa pamamagitan ng db.tasks. At ito ay nagsasabi sa akin lumabas kung patatakbuhin namin mahanap, uri ng katulad ng kung ano namin ay may mga gamit Hukay, maaari naming i-load ang lahat ng mga elemento. Ang problema ay, hindi namin talaga mayroon kang anumang mga gawain na natukoy. Kaya hindi ito maaaring makakuha ng mga ito. Maaari naming isingit, bagaman. Upang maaari naming patakbuhin insert may insert command. At namin bigyan lang ito isang bagay, at kami lamang siguraduhin na ang format ay kung ano ang inaasahan namin. Kung itinuturing namin ang hakbang ng dalawang, Nakita namin na ang bawat gawain ay isang bagay na may teksto bilang ang susi at ang anumang iyong gawin ang item ay bilang isang variable. Kaya maaari naming gawin ang isang bagay dito. Maaari kaming magkaroon ito ay ipasok ang isang gawain tinatawag dumating ko mula sa Mongo. At pindutin ang Enter namin, at ito ay tumatakbo. Maaari naming patakbuhin mahanap muli, at kami makita na mayroong isang bagay dito. Mongo nagtatalaga ito ng isang ID, na sa iyo hindi talaga kailangang mag-alala tungkol sa. Ano ang mahalaga sa iyo ay ang data ilagay mo sa, ay ang data na lumabas. Sabihin bumalik sa aming website, at hey, load aming mga gawain. At maaari mong makita na dahil Hukay ay lubos na smart at palaging nagre-refresh para sa iyo, ako Hindi na kailangang pindutin ang pahina. Awtomatiko itong load. Magpatakbo ng ilang mga code sa Hayaan Bagaman ang JavaScript upang magawa ito. Tulad mayroon kami Node sa likod magtapos upang maisagawa ang JavaScript, Maaari rin naming magpatakbo ng JavaScript nang direkta sa aming mga browser. Maaari mong gawin ito sa pamamagitan ng isang tampok tinatawag Siyasatin ang Elemento. Kung karapatan ako mag-click sa isang na seksyon ng pahina, mayroong isang opsyon tinatawag Siyasatin ang Elemento. Kung nagpapatakbo ka ng isang browser tulad ng Safari, mo Maaaring kailanganin mong paganahin ang inyong developer mga tool bago mo makuha ang tampok na ito. Ano ang mahalaga sa kami tungkol ay ang console. Kaya magkakaroon kami pumunta lamang sa console sa ibaba. Ngayon ay maaari naming patakbuhin ang anumang JavaScript dito, tulad ng JavaScript Nagpakita ang mga file ko sa js halimbawa. Ngunit tingnan natin ang mga gawain ngayon hayaan. Maaari naming patakbuhin ang aming mga command. At sana ay magagawa ko magagawang ito medyo mas malaki upang maaari naming makita ang lahat. Kung nagpapatakbo tasks.find namin, at ikaw ay makita na ito ay ang eksaktong parehong code na ang JavaScript ginagamit ng file sa hakbang tatlo, ito task.find. Maaari naming patakbuhin ang parehong bagay, at ngayon makuha namin ang ilang mga kakatwang mga bagay-bagay. Paano talaga namin makuha ang data? Well, mayroon kaming upang mapatakbo ito command na tinatawag na makuha ang. Ito ay napaka-kapaki-pakinabang para sa pag-debug. Ano makuha mo dito ay isang cursor, at ito ay gandang paraan Hukay ay -optimize na data fetching. Cursor na ito ay may lahat ng mga tampok para sa live na pag-update at i-refresh ang pahina kapag ang isang bagay ay nagbago. Ngunit hindi ito makakuha amin ang data. Maaari naming makuha ang data sa pamamagitan ng fetch. At nakita mo ang mayroon kaming isang bagay, at ito ay katulad lamang ng kung ano ang namin ay may sa Mongo, may isang ID at ang teksto ilalagay namin sa. Kaya paano namin magpasok ng isang item sa Hukay? Well, mayroon lang namin gawain. At pagkatapos ay maaari naming patakbuhin ang parehong insert utos, pagbibigay ng isang diksyunaryo o isang bagay na na may katulad na format, teksto at pagkatapos ay ko mula sa console. Tingnan sa itaas dahil kapag ako ay gawin ito, ito ay nagpapakita up sa website awtomatiko. Pansinin na maaari kang maglagay ng kahit ano Gusto mo sa mga item na ito. Hindi nito kailangang magkaroon ng isang nakapirming istraktura. Maaari akong magkaroon ng isang katumbas ng numero ng tatlong at b katumbas ng false. At lahat ng mga gawa. Maaari ko bang kahit piliing hindi magsama ng teksto sa lahat. Lamang na ito ay hindi inirerekomenda bagaman dahil pagkatapos Hukay Hindi alam kung ano ang ipapakita. Ngunit sa bawat kaso, namin makakuha ng isang ID, at iyon ang ang ID ng bagay na maaari mong gamitin. Habang patuloy kami sa basa-apat na hakbang at limang, ang tutorial ay magpapakita sa iyo paraan na maaari kang lumikha ng mga elemento ng UI paggamit ang alam mo na HTML lumikha ng iba't ibang mga gawain. Tingnan natin ang hakbang na apat na talagang mabilis Hayaan. Susubukan naming makita na naidagdag namin isang seksyon tungkol sa mga kaganapan. Mga Template ay maaaring magkaroon ng helpers, na kumuha sa amin data. Ngunit ito rin ay tumawag sa kaganapan. At ito ay kung saan bagay-bagay naging kapaki-pakinabang, dahil kaganapan ay kung ano ang mangyayari kapag nag-click ka sa iba't ibang bagay sa iyong website. Narito, ang aming code ay nagsasabi amin upang idagdag ang kaganapang ito. Idagdag ito kapag naisumite mo na isang bagay na may klase bagong gawain. Ano ang mayroon kang dito ay isang CSS selector. Kaya ito lamang ang hitsura para sa isang HTML elemento na may klase bagong gawain. At mukha itong para sa kaganapan, tulad ng isumite. Kasama sa iba pang mga kaganapan -click, hover, i-double click, katulad ng kung ano makuha mo sa normal na HTML. Ano ba ninyo ito dito ay isang function ngayon. At maaari kang magkaroon ng mga code sa na function. Function na ito ay kung ano ang nagtatapos up pagkuha tinatawag na kapag isinumite mo ang bagong gawain. Tingnan natin ang HTML para lang Hayaan natin maunawaan kung ano ang bagong gawain ay. Nagdagdag kami ng isang form dito may klase bagong gawain. At ito ay isang input na tumatagal ng teksto. At ito ay kung saan namin ay magdadagdag ng aming bagong gawain. Magpatakbo ng sunod na apat sa Hayaan website upang makita kung ano ang mukhang. Maaari naming tumigil muna out ng MongoDB namin ay may mula sa aming mga nakaraang mga Halimbawa gamit ang Control C. At palitan natin ito sa ipaalam ang hakbang sa apat na direktoryo. Susubukan naming patakbuhin muli Hukay upang simulan ang server. At sa kasamaang palad, nagkaroon ako Hukay na tumatakbo sa isa pang terminal. Kaya ako lamang ng pagpunta sa tiyakin na ito sarado. Ay tumigil na ito at pagbabago Hayaan sa bahagi apat, apat na hakbang. OK. Ngayon aming Hukay code ay tumatakbo. At maaari mong makita na ito na-update, nang walang sa amin kahit na nagkakaproblema upang i-refresh ang pahina. Ano ang nagbago dito ngayon na wala kaming anumang gawain, ngunit kami ay may isang form dito, ito kahon ng teksto, upang magdagdag ng aming bagong gawain. At maaari naming i-type ang aming gawain dito. Dumating ako mula sa pahina ng HTML. Kapag pinindot ko ang Enter, ito Kaka-isinumite. Maaari naming makita kung ano ang nangyari bilang natukoy ng JavaScript code. Ano ang function na ito ginawa noon ay kunin ang teksto mula sa form na ito, at pagkatapos lamang na tinatawag na tasks.insert, tulad ng ginawa namin sa console. Pinili rin nilang upang magdagdag ng petsa createdAt. Ito ay kung paano mo gagawin tukuyin ang kasalukuyang oras. Pagkatapos nito, kini-clear nito ang na form sa pamamagitan ng paggawa Siguraduhin na ang halaga ay ang walang laman na string. At pagkatapos nito tawag return false sa tiyakin na walang tao ang mangyayari. Kapag bumalik ka false mula sa isang form ng kaganapan, na humihinto pagpapatupad. Sabihin ang isang form ay isang aksyon, tulad sumailalim sa isang pahina ng PHP. Kung hindi mo ay ibinalik false, gusto mo nagbabalik ng tunay. Ito ay napupunta sa paggawa ng kahilingang iyon. Mali intercepts ito at Humihinto ito doon. Kaya na ay isang maliit na demo tungkol sa kung paano gumagana Hukay, at hindi namin naging pagsunod sa mga pagtuturo para sa isang habang. At maaari mong huwag mag -atubiling patuloy na gawin ito. Maraming mapagkukunan, at ang tutorial ay talagang lamang napakabuti tungkol sa nagpapaliwanag kung ano ang nangyayari. Ko nais upang ipakita sa iyo ngayon, sa ang ilang minuto namin pakaliwa, kung ano ang ilan sa mga mas cool na tampok ng Hukay, at kung ano ang ilan sa mga mas kapaki-pakinabang na mga pakete. Isa sa mga magagandang bagay tungkol sa Hukay ay na mayroon kang isang package ng system. Madali mong isama ang code na libu-libong mga developer isinulat sa buong mundo sa iyong proyekto Hukay. Isang halimbawa nito ay ang kung ano ang maaari kang gawin sa hakbang siyam ng pagtuturo, kung saan na sinusubukan mong magdagdag ng mga account sa iyong proyekto Hukay. Kung mayroon kaming CS50 PHP proyekto, gusto naming magkaroon umasa sa ang balangkas o sa aming sariling code upang gumawa ng mga Tiyaking ligtas na namin pinangangasiwaan ang mga password at mga username at pag-iimbak ng database at ang lahat ng iyon. Ito ay lumiliko out Hukay ay may ilang mga pakete upang gawin iyon para sa iyo, at upang gawin ito sa lalong madaling. Ano ang maaari naming gawin ay magdagdag ng ilang mga pakete. Kaya hayaan gawin na karapatan ngayon sa ating console. Pupunta ako upang lumabas ang proyekto at karapatan na pumunta sa sira-todos ngayon. Ngayon, sira-todos ay ang proyekto na Magkakaroon matapos tapos may 11 hakbang o step 12, sa dulo ng tutorial na ito. At sa mabilis na makita ang dito upang makita ipaalam ano ang mga iba't ibang mga tampok na mayroon kami. Gumawa ng lang masiguradong tumatakbo Hayaan. Minsan mas nagtatagal ang isang habang upang i-refresh, ngunit eto. Mayroon kaming aming pagpipilian upang itago Kumpleto na gawain, at maaari naming mag-sign in. At ito ay ginawa nang may Hukay ang package. Ito ay mahusay na. Ngayon kami username at pag-sign password sa. Ngunit paano kung gusto naming idagdag isa pang uri ng mekanismo sa pag-login? Ipagpalagay natin na nais kong mag-log in gamit ang aking Hukay account. Pupunta ako sa magpatakbo ng bulalakaw add, at ito ay ang syntax para sa pagdaragdag ng mga package. Maaari ko bang sabihin account, at accounts.meteor. Ito ay pagpunta sa ngayon ang -load ito ang package at. Maaari mong makita na mayroon akong hindi natagpuan ang tamang pangalan ng package. Kaya paano mo malaman ang tungkol sa mga pakete? Doon na rin ang isang mahusay na website, nagawa makukuha sa pamamagitan ng Hukay ng mga tao, tinatawag na atmospherejs.com. Atmospherejs, isang salita, tuldok com, ay isang mahusay na imbakan para sa paghahanap ng lahat ng mga Hukay mga package sa imbakan. Maaari ba akong maghanap ng mga account, at pagkatapos ay Makikita ito ipakita sa akin ang lahat ng may-katuturang mga bagay-bagay, lahat ng mga pakete kasama ang pangalan ng account. Habang na naglo-load, maaari naming subukang ang pagdaragdag ng ilang mga iba pang mga pakete. Siguro ang Hukay ng package ay hindi gumagana sa ngayon, ngunit maaari kong idagdag Facebook. Maaari ba akong magdagdag ng mga account at pagkatapos ay patakbuhin muli ang proyekto Hukay. Sa sandaling magsimula ito, tingnan natin kung ano ang nagbago sa website. Maaari mong see-- maaari kong mayroon upang i-refresh ito dito. Mayroon akong isang pindutan i-configure ang pag-login sa Facebook. At dito, mayroon akong lahat ang mga tagubilin sa Hukay ay inihanda para sa iyo para sa -set up ng isang Facebook app. At maaari mong gamitin na impormasyon upang idagdag ang iyong ID. Sa sandaling na tapos na, magkakaroon ka ng Facebook sa pag-login nagtatrabaho sa iyong app. Lamang ako pupunta upang makakuha ng isang app ID at ng isang lihim na, upang ipakita sa iyo lamang kung paano maaaring gumana ito. Kakailanganin mo ng Facebook account gamitin ang mga pagpipilian ng nag-develop Facebook. Hayaan akong lamang mabilis na mahanap ang Hukay ng key na kinakailangan. Mayroon akong isa pang proyekto Hukay na pupuntahan ko gamitin, at ako lamang ang pagpunta sa tumagal ang mga key mula sa file na iyon. At sa sandaling mahanap ko ito, makikita lamang maging ko magagawang upang kopyahin ang mga key sa aking Facebook. Kaya dito ay ang susi. At ito ay sikreto. Hindi ka dapat maging pagbabahagi nito sa mga tao. At pagkatapos mong bigyan ito ang iyong lihim na app. At ito ay kaya Facebook alam na ikaw mo. At i-save mo ang configuration. Sa tingin ko ay nasa proseso ako ay tumigil sa aking Hukay ng app. Kaya gusto ko lang gawin tiyaking ito ay pa rin doon. OK, gumawa ng bang aming Hukay ng server ipaalam Tumatakbo kaya ang web page ay tumatakbo. Pansinin kung ihinto namin ang Hukay server, ang pahina ay may pa rin. Hindi ito maa-update lamang na ngayon. Hukay ng server ay kinakailangan para sa pagtiyak na ang pahina ay live. OK, naisumite ko na ito, at ngayon Maaari ba akong mag-sign in gamit ang Facebook. Ngayon na ang isang bagay lamang ng pagkakaroon ng mga pop up Facebook at paglalagay sa iyong account impormasyon at mga pag-log in. Sa sandaling gawin mo iyon, maaari Facebook mangyamot sa iyo ng ilang higit pang seguridad. Kaya namin lamang tumigil doon. Ang punto ay na kapag tapos ka na may na, magkakaroon ka ng pag-log in sa Facebook. Hukay ay may isang bungkos ng iba pang mga pakete pati na rin. Maaari kang mag-log in sa Google+. Maaari kang mag-log in gamit ang GitHub. Maaari kang mag-log in gamit ang Twitter. O kung naghahanap ka, ipapakita sa iyo makahanap ng maraming iba pang mga bagay tulad ng Meetup, LinkedIn, at Hukay ng Nag-develop. Kaya Hukay ng Nag-develop ay ang package ako ay naghahanap para sa. bulalakaw magdagdag ng mga account-bulalakaw-develop. Sa pansamantala, ako Gusto rin upang magrekomenda sa ilang ibang mga pakete para sa iyong proyekto. Maaaring patunayan kapaki-pakinabang sa isama ang jQuery package. Nagbibigay-daan ito sa iyo upang gamitin ang jQuery sa iyong mga kliyente. Maaari mong gawin lamang ito sa isang linya, at Hukay ay siguraduhin na ang hanggang sa petsa sa jQuery. Inirerekomenda ko rin houston: admin. Ito ay uri ng tulad ng isang phpMyAdmin uri ng tool para sa iyong MongoDB. Pinapayagan ka nito na i-edit medyo madali ang iyong data nang hindi na kinakailangang pumunta sa Mongo shell, tulad ng ginawa ko ay mas maaga sa seminar. Kaya ngayon na na tumatakbo, na tumakbo ipaalam Hukay muli at tingnan kung ano ang maaari naming gawin. Napansin mo na ang pagdagdag ng ilang mga pakete maaaring mayroon sila ipakita ang ilang mga babala. Hindi mo kailangang mag-alala tungkol na may houston. Kaya maaari naming ngayon ay may opsyon upang i-configure Hukay ng admin. At bibigyan ka nila ng mga direksyon kung nais mong i-set up na. Maaari din namin ngayon pumunta sa / admin. Ito ay inihatid sa iyo sa pamamagitan ng houston package. At ito ay Hukay ng admin interface. Lumikha mo lamang ng isang admin account, tulad ng sa gayon. At kung i-refresh mo ang pahina, maaari kang May ilang mga koleksyon sa paglitaw. Ito ay isang napaka-kapaki-pakinabang na tool, at Lubos kong irekomenda ito. Maaari mong makita na dahil houston ay nagbibigay sa ilang mga error, wala kaming anumang mga koleksyon sa paglitaw sa ngayon. Ang paraan na nais mong gamitin houston ay tinitiyak na nakukuha ng function na ito na tinatawag na sa iyong simpleng-todos. Kaya houston hindi alam kung ano ang aking mga gawain ay. Kami set up ng isang Mongo koleksyon na tinatawag na mga gawain. Tara sa sira-todos at lamang tiyakin na nasa JavaScript, nagdagdag kami ng mga gawain sa aming mga koleksyon. Ngayon nai-save namin, at ito ay ang pagbuo ang application, nakakapreskong. At Tingnan natin ipaalam. Ngayon ay mayroon kaming ilang mga gawain. At maaari naming magdagdag ng ilang mga bagong gawain. Ngunit kung gusto naming idagdag ang mga gawain, gawin natin ito gamit ang app mismo ipaalam. Ngayon ay maaari naming magdagdag ng ilang data. Hi, ito ay isang gawain. Tila uri ng kakaiba na Hindi namin nakikitang anumang gawain. Maaari naming gusto upang suriin kung mayroon kaming anumang mga error dito, o marahil sa ibang lugar. Kung tayo pumunta sa admin, na tila kakaiba. Kung hilahin mo ang iyong imbakan pagkatapos ito seminar, Ako ay matiyak na simpleng-todos gumagana sa houston. Sa kasamaang palad, hindi ito mukhang maging nagtatrabaho sa ito napaka sandali. Mayroon bang anumang iba pang mga tanong? Houston normal ay isang tool na gumagana nang mahusay. Houston partikular na ay isang bit buggier kaysa sa iba pang mga, ngunit gagawin ko inirerekomenda ito kapag ito gumagana. Oo. Madla: Ano ang maaari mong gawin may package Facebook sa sandaling ang isang gumagamit ay naka-log in gamit ang kanilang mga Facebook? Roger ZURAWICKI: Sa sandaling ng isang user-log in, maaari kang gumawa ng mga tawag sa API sa Facebook. Isang maraming na namamalagi nang higit pa sa paano bubukas Facebook kanilang API. Hukay, tiyaking Mayroon ang koneksyon. Ngunit lahat pagkatapos na ay isang bagay na ng pag-aaral kung paano gamitin ang Facebook API. Madla: [hindi marinig]. Roger ZURAWICKI: Ang lahat ng karapatan. Maraming salamat sa inyo para sa ito CS50 seminar sa Hukay. Kung mayroon kang anumang mga katanungan, Maaari mong i-email sa akin sa aking email address Nakalista sa ibaba ang seminar. At ikalulugod kong upang sagutin ang iyong mga tanong. Makikita ko rin na sa CS50 Hackathon dapat Kailangan mo ng tulong sa iyong mga proyekto Hukay. Salamat sa iyo para sa panonood.