1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> KEVIN SCHMID: Ahoj všetci. 3 00:00:09,710 --> 00:00:12,640 Vitajte na CS50 seminár na Node.js. 4 00:00:12,640 --> 00:00:13,955 Volám sa Kevin. 5 00:00:13,955 --> 00:00:15,580 Som CS50 TF. 6 00:00:15,580 --> 00:00:17,650 A ja som niečo ako naozaj nadšená o tomto seminári. 7 00:00:17,650 --> 00:00:20,430 Myslím, že Node.js je veľmi cool. 8 00:00:20,430 --> 00:00:24,200 Dúfam, že tento seminár je možné použiť ako dobrý, myslím, odrazový mostík pre 9 00:00:24,200 --> 00:00:26,380 niektoré z vašich záverečných projektov, ak máte záujem o využitie 10 00:00:26,380 --> 00:00:27,630 niečo ako Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Budeme nejako začať seminár off len o trochu 13 00:00:33,320 --> 00:00:36,970 druh pozadia škálovateľnosť Perspektívy Node.js, a potom 14 00:00:36,970 --> 00:00:39,240 budeme pohybovať na niektoré príklady kódu. 15 00:00:39,240 --> 00:00:42,340 A ja budem mať kód na webových stránkach, a môžete sa pozrieť na kód. 16 00:00:42,340 --> 00:00:45,475 A po seminári, budem triediť hovoriť o tom, ako si môžete nastaviť Node.js 17 00:00:45,475 --> 00:00:48,220 na vašom počítači. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Tak poďme začať. 20 00:00:49,760 --> 00:00:53,700 Takže myslím, že som chcel hovoriť o webové servery, naozaj, ako prvý. 21 00:00:53,700 --> 00:00:59,730 A začať túto diskusiu, som v podstate majú diagram, ktorý je od 22 00:00:59,730 --> 00:01:04,269 učebnica používa pre CS61, ktoré v podstate ukazuje interakcie 23 00:01:04,269 --> 00:01:08,510 medzi procesu klienta, ako je váš web prehliadača alebo ako váš cieľ klienta alebo 24 00:01:08,510 --> 00:01:11,340 niečo také, a webový server. 25 00:01:11,340 --> 00:01:15,150 Takže tento druh vyzerá podobne ako obrázok, ktorý ste videli v prednáške na 26 00:01:15,150 --> 00:01:19,270 Streda, kde v podstate máme nejaké Proces klienta ako je Google Chrome. 27 00:01:19,270 --> 00:01:22,980 >> A potom prvý krok je klient odošle požiadavku. 28 00:01:22,980 --> 00:01:27,510 Takže to môže byť niečo ako dobre poďme návštevu, neviem, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Tak sme sa vydať túto požiadavku. 30 00:01:29,320 --> 00:01:34,280 A nemá niekto spomenúť na meno protokol, ktorý špecifikuje, ako to 31 00:01:34,280 --> 00:01:35,610 Žiadosť by mala byť štruktúrovaná? 32 00:01:35,610 --> 00:01:36,382 Jo. 33 00:01:36,382 --> 00:01:37,650 >> DIVÁKOV: [nepočuteľné]. 34 00:01:37,650 --> 00:01:38,150 >> KEVIN SCHMID: Presne tak. 35 00:01:38,150 --> 00:01:40,100 Takže je to ako HTTP, nie? 36 00:01:40,100 --> 00:01:44,720 Takže v podstate, ako špecifikácia že žiadosť by mala v skutočnosti byť stanovená 37 00:01:44,720 --> 00:01:47,450 von, pretože na konci dňa, že žiadosť je naozaj len rád 38 00:01:47,450 --> 00:01:50,240 Reťazec, ktorý v podstate hovorí, že to chcem. 39 00:01:50,240 --> 00:01:53,580 A špecifikácia pre ktoré je HTTP. 40 00:01:53,580 --> 00:01:55,270 Takže to je ako protokol. 41 00:01:55,270 --> 00:01:57,920 >> Takže server dostane že žiadosť. 42 00:01:57,920 --> 00:02:01,610 Takže vy máte nainštalovaný webový server v CS50 spotrebiča. 43 00:02:01,610 --> 00:02:02,460 Je to Apache. 44 00:02:02,460 --> 00:02:06,230 A tento týždeň, keď budete pracovať na probléme nastaviť sedem, budete skutočne pracovať 45 00:02:06,230 --> 00:02:08,160 s týmto webovým serverom. 46 00:02:08,160 --> 00:02:12,380 Takže server dostane túto žiadosť, a potom sa musí trochu poškriabať jeho 47 00:02:12,380 --> 00:02:15,090 hlavu a povedať, ako dobre to, čo mám robiť s tým? 48 00:02:15,090 --> 00:02:20,060 >> Takže na základe toho, čo sa rozhodne urobiť, potom to môže mať kontaktovať nejakú 49 00:02:20,060 --> 00:02:20,730 zo zdroja. 50 00:02:20,730 --> 00:02:23,700 A že zdroj by mohol byť veľa rôznych vecí. 51 00:02:23,700 --> 00:02:26,810 Pre jedného, ​​by to mohlo byť len ako statické HTML súboru. 52 00:02:26,810 --> 00:02:29,820 Takže to môže byť len ako nejaký HTML, ktorá je rovnako ako u 53 00:02:29,820 --> 00:02:31,100 vaše osobné webové stránky. 54 00:02:31,100 --> 00:02:35,360 Mohlo by to byť statický obrázok ako obrázok alebo ako film, ktorý máte. 55 00:02:35,360 --> 00:02:37,660 Mohlo by to mať aj hovoriť do nejakej databázy 56 00:02:37,660 --> 00:02:39,530 ako databázu MySQL. 57 00:02:39,530 --> 00:02:43,910 Takže to nemusí vždy komunikovať so zdrojom, ale v 58 00:02:43,910 --> 00:02:45,700 V niektorých prípadoch by to mohlo. 59 00:02:45,700 --> 00:02:47,800 >> Tak čo to bude robiť potom, čo to je, že to bude 60 00:02:47,800 --> 00:02:49,430 poslať späť odpoveď. 61 00:02:49,430 --> 00:02:53,130 A odpoveď je to, tiež určuje HTTP. 62 00:02:53,130 --> 00:02:54,830 Takže potom môže klient obdržať. 63 00:02:54,830 --> 00:02:56,740 To môže roztrhať na kusy a spracovať ju. 64 00:02:56,740 --> 00:03:00,900 A potom dostanete webovú stránku ako je Google alebo CS50.net alebo 65 00:03:00,900 --> 00:03:02,240 čo šiel. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> Tak to je základné interakcie, ktoré budeme sa zaoberajú. 68 00:03:06,080 --> 00:03:08,770 A my sme dosť veľa bude zamerané na tejto časti 69 00:03:08,770 --> 00:03:10,640 interakcie, server. 70 00:03:10,640 --> 00:03:10,990 OK. 71 00:03:10,990 --> 00:03:12,210 V pohode. 72 00:03:12,210 --> 00:03:15,500 Má niekto nejaké otázky tak ďaleko? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Tak, ako sme si povedali, webový server dostane túto požiadavku HTTP a potom vydá takéto 75 00:03:22,430 --> 00:03:24,760 Odpoveď HTTP. 76 00:03:24,760 --> 00:03:29,100 A ako sme o tom hovorili skôr, CS50 spotrebiče webový server Apache. 77 00:03:29,100 --> 00:03:32,490 Takže keď chalani pracovať na P set sedem, budete pracovať s 78 00:03:32,490 --> 00:03:34,120 Webový server Apache. 79 00:03:34,120 --> 00:03:37,890 Už nikdy nebudete musieť skutočne pracovať Apache priamo príliš veľa. 80 00:03:37,890 --> 00:03:41,920 Môžete nejako konfigurovať Apache trochu keď zadáte na virtuálne hostiteľa alebo 81 00:03:41,920 --> 00:03:44,970 Klinové hostitelia, a dostaneme sa, že v trochu. 82 00:03:44,970 --> 00:03:50,620 >> Ale v podstate, web server Apache nastaviť pre prácu s PHP druhu 83 00:03:50,620 --> 00:03:51,730 zo po vybalení z krabice. 84 00:03:51,730 --> 00:03:56,170 Takže to, čo sa skutočne deje je, keď idete do jednej zo svojich webových stránok, ako je, povedzme, 85 00:03:56,170 --> 00:04:00,360 miestneho hostiteľa lomítko index.php, alebo tak niečo, je váš prehliadač odošle že 86 00:04:00,360 --> 00:04:04,330 žiadosť, a potom Apache sedí tam a vyrieši s tým robiť. 87 00:04:04,330 --> 00:04:08,840 A akcia je vykonať že kód v index.php a 88 00:04:08,840 --> 00:04:11,330 potom ho odoslať späť. 89 00:04:11,330 --> 00:04:15,640 Takže tam je to. 90 00:04:15,640 --> 00:04:16,980 Tak sme trochu hovorili o tom. 91 00:04:16,980 --> 00:04:21,990 Takže by to mohlo slúžiť iba statický súbor alebo spustiť nejaký PHP kód a potom problém 92 00:04:21,990 --> 00:04:23,510 odpoveď. 93 00:04:23,510 --> 00:04:27,670 >> Tak častá otázka, ktorá môže prísť up je dobre, ako to naozaj riešiť 94 00:04:27,670 --> 00:04:31,750 s tým viac užívateľov v rovnakom čase? 95 00:04:31,750 --> 00:04:36,930 Takže si predstavte, že ste písali web servera, ak ste mal webový server, ktorý 96 00:04:36,930 --> 00:04:39,900 ste sa snažili napísať niečo ako je C alebo niečo také, 97 00:04:39,900 --> 00:04:45,150 v podstate môžete premýšľať o tom, ako sa tam by mohol byť nejaký druh kódu, ktorý 98 00:04:45,150 --> 00:04:49,330 dostane žiadosť, ale potom to má robiť všetku túto prácu na ňom. 99 00:04:49,330 --> 00:04:53,060 To môže mať, napríklad, kontaktujte databázy alebo niečo také. 100 00:04:53,060 --> 00:04:53,300 Je to tak? 101 00:04:53,300 --> 00:04:56,010 A potom, že by to ten druh spracovanie a potom 102 00:04:56,010 --> 00:04:57,060 vrátený späť do reakcie. 103 00:04:57,060 --> 00:04:58,950 Takže to je ako vysoko Prehľad úrovni. 104 00:04:58,950 --> 00:05:04,210 >> Ale to nie je na prvý pohľad zrejmé, ako sa Môžete to urobiť tak, že dvaja ľudia, alebo 105 00:05:04,210 --> 00:05:09,040 dokonca 1000 ľudí by mohlo fungovať s vaším webový server, v rovnakom čase. 106 00:05:09,040 --> 00:05:14,880 Takže riešenie, ktoré využíva Apache sa nazýva vlákna alebo procesy. 107 00:05:14,880 --> 00:05:16,770 Tak ste možno počuli o tieto pojmy pred. 108 00:05:16,770 --> 00:05:22,190 To je v poriadku, ak nemáte, ale len, že o závitu alebo procesov ako spôsoby 109 00:05:22,190 --> 00:05:26,290 operačný systém alebo užívateľský program alebo niečo také, alebo webový server 110 00:05:26,290 --> 00:05:28,810 na druh vykonávať viac veci naraz. 111 00:05:28,810 --> 00:05:31,760 Tak ste možno počuli termín ako závity prevedenie. 112 00:05:31,760 --> 00:05:34,140 Takže je to niečo ako, že si druh multitasking. 113 00:05:34,140 --> 00:05:37,710 >> A ak ste videli na krabici vášho notebook, alebo niečo také, 114 00:05:37,710 --> 00:05:43,040 multicore, čo môžete urobiť, je môžete spustiť dva rôzne závity na rôzne 115 00:05:43,040 --> 00:05:46,700 časti procesora tak, aby mohli v skutočnosti sa stalo v rovnakom čase. 116 00:05:46,700 --> 00:05:48,100 Tak toto je naozaj silný. 117 00:05:48,100 --> 00:05:52,270 A to je druh Apache riešenie tohto problému. 118 00:05:52,270 --> 00:05:57,900 >> Takže je tam niečo ako prípadné problémy s týmto prístupom by? 119 00:05:57,900 --> 00:05:59,870 Takže myslím, že som trochu písal ich tam. 120 00:05:59,870 --> 00:06:03,440 Ale obaja tak nejako používajú veľké množstvo pamäte. 121 00:06:03,440 --> 00:06:07,490 Je to veľmi drahé, na vytvorenie vlákno alebo proces. 122 00:06:07,490 --> 00:06:11,750 >> A časť odôvodnenia je, že práve ako keď ste spustenie programu C 123 00:06:11,750 --> 00:06:15,090 ako vaše hlavné a potom, že hovory ďalšie funkcie, ktoré má 124 00:06:15,090 --> 00:06:16,520 nejaký zásobníka. 125 00:06:16,520 --> 00:06:19,910 Takže vlákna tiež vyžadujú úplne samostatný zásobník, ktorý 126 00:06:19,910 --> 00:06:21,220 môžu byť pomerne veľké. 127 00:06:21,220 --> 00:06:25,170 A ak si môžete predstaviť, že veľa užívateľov na vaše webové stránky, mali by ste mať 128 00:06:25,170 --> 00:06:26,280 mnoho rôznych vlákien. 129 00:06:26,280 --> 00:06:28,230 To je veľa stohov spravovať a udržiavať. 130 00:06:28,230 --> 00:06:31,280 Tak to je veľká spotreba pamäte. 131 00:06:31,280 --> 00:06:35,650 >> A potom, aj, povedzme, že máte len jeden CPU, alebo povedzme, že máte 132 00:06:35,650 --> 00:06:38,460 viac závitov, ako máte tie multicores. 133 00:06:38,460 --> 00:06:38,730 Je to tak? 134 00:06:38,730 --> 00:06:43,280 Takže povedzme, že ste mal 10 vlákien a pred sebou mali len päť procesorov. 135 00:06:43,280 --> 00:06:46,260 Tak nejako urobiť túto vec, kde môžete prepínať medzi prúdom 136 00:06:46,260 --> 00:06:49,090 ten, ktorý je spustený, pretože ste nemožno spustiť všetky 10 naraz. 137 00:06:49,090 --> 00:06:50,980 A to sa hovorí prepnutie kontextu. 138 00:06:50,980 --> 00:06:54,260 A že pojem má v skutočnosti niekoľko rôzne kontexty, ale povedzme, 139 00:06:54,260 --> 00:06:56,620 myslieť na to ako spínacie medzi dvoma závitmi. 140 00:06:56,620 --> 00:06:59,730 To môže byť veľmi nákladné, pretože v podstate to, čo musíte urobiť, je si 141 00:06:59,730 --> 00:07:03,340 musieť zastaviť to, čo robíte, uložiť stav tohto spustený vlákno, a 142 00:07:03,340 --> 00:07:05,440 potom prejsť niekam inam. 143 00:07:05,440 --> 00:07:09,420 >> Takže sa všetci trochu vidieť motivácia, prečo závity a 144 00:07:09,420 --> 00:07:12,030 procesy by mohli byť trochu objemný? 145 00:07:12,030 --> 00:07:13,840 A už máte nejakú otázku? 146 00:07:13,840 --> 00:07:14,376 OK. 147 00:07:14,376 --> 00:07:15,070 V pohode. 148 00:07:15,070 --> 00:07:18,090 Má niekto nejaké otázky? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Takže keď sme sa o krok späť za sekundu, tam je niečo ako 151 00:07:26,720 --> 00:07:30,350 Zistenie, že by sme mohli o Mnoho webových aplikácií. 152 00:07:30,350 --> 00:07:34,810 A to je fakt, že mnoho z nich v skutočnosti nerobia to veľa užitočné 153 00:07:34,810 --> 00:07:37,140 pracovať vnútri závitu. 154 00:07:37,140 --> 00:07:41,170 Takže sa niekto začal na P set sedem vôbec? 155 00:07:41,170 --> 00:07:45,650 Takže chceš snáď popísať niektoré časti? 156 00:07:45,650 --> 00:07:47,850 Pracoval ste na prihlásenie alebo niečo také? 157 00:07:47,850 --> 00:07:49,330 >> Divákov: Nie 158 00:07:49,330 --> 00:07:49,780 >> KEVIN SCHMID: OK. 159 00:07:49,780 --> 00:07:50,150 To nič. 160 00:07:50,150 --> 00:07:50,900 Prepáčte. 161 00:07:50,900 --> 00:07:55,790 Ale v podstate, v sade P, ste bude robiť veľa druhu 162 00:07:55,790 --> 00:07:59,760 dotazy na databázu, ako získať niektoré Informácie z tejto databázy. 163 00:07:59,760 --> 00:08:03,330 A čo váš kód sa bude robiť, čo tento proces Apache alebo 164 00:08:03,330 --> 00:08:06,030 že Apache vlákno sa bude robiť zatiaľ čo to má kontaktovať 165 00:08:06,030 --> 00:08:08,990 Databáza je to trochu bude tam sedí, a to bude 166 00:08:08,990 --> 00:08:12,130 čakanie na databázy odpovedať. 167 00:08:12,130 --> 00:08:16,290 >> Teraz, keď nemusí znieť ako tak veľký zaoberať, pretože databáza je na vašej 168 00:08:16,290 --> 00:08:18,240 CS50 zariadenie, nie? 169 00:08:18,240 --> 00:08:22,930 Ale tam je nejaký druh siete Latencia tam, pretože teraz webe 170 00:08:22,930 --> 00:08:26,830 server má vydať svoju vlastnú žiadosť databázy pre komunikáciu s 171 00:08:26,830 --> 00:08:29,520 databázy a potom sa, že informácie späť. 172 00:08:29,520 --> 00:08:33,190 Takže teraz je to ako dobre čakať na mňa, ja som ísť dostať niečo z 173 00:08:33,190 --> 00:08:35,770 databázy a potom je tu Mnoho čakania deje. 174 00:08:35,770 --> 00:08:36,870 Má to zmysel? 175 00:08:36,870 --> 00:08:38,580 >> A niektoré veci, že to nie je tak zlé. 176 00:08:38,580 --> 00:08:41,950 Je-li to len má, napríklad, prístup k pamäti, že to nie je ako 177 00:08:41,950 --> 00:08:44,100 hrozný I / O latencia. 178 00:08:44,100 --> 00:08:47,110 A keď hovorím, I / O latencie, čo som odkazuje na je ako akékoľvek podobné 179 00:08:47,110 --> 00:08:48,290 vstup a výstup. 180 00:08:48,290 --> 00:08:52,950 Ale prístup k súboru na disku, ako je keby som chcel slúžiť statické HTML 181 00:08:52,950 --> 00:08:57,850 súbor, ktorý bol na mojej webovej stránke, alebo niečo ako, že som tak trochu musel 182 00:08:57,850 --> 00:09:02,310 zastaviť na chvíľu, prečítajte si tento súbor od disku, a potom 183 00:09:02,310 --> 00:09:04,400 že proces čakám. 184 00:09:04,400 --> 00:09:06,700 Nebudem robiť užitočnú prácu. 185 00:09:06,700 --> 00:09:11,270 >> To nie je pravda všetko, ale je to je bežné u aplikácií, ako je P sady 186 00:09:11,270 --> 00:09:13,960 sedem a mnoho aplikácií že nie ste 187 00:09:13,960 --> 00:09:15,440 vlastne robí veľa premýšľať. 188 00:09:15,440 --> 00:09:19,090 A keď hovorím myslenia, mám na mysli ako výpočtovej prácu. 189 00:09:19,090 --> 00:09:23,270 Takže výpočtovej práce by mohlo byť niečo, ako, povedzme, čo ste chceli 190 00:09:23,270 --> 00:09:26,590 napísať webový server, ktorý práve vypočítanú nth Fibonacci číslo. 191 00:09:26,590 --> 00:09:29,300 To neznie ako zvlášť zábava webový server. 192 00:09:29,300 --> 00:09:34,220 Ako by som nečakal, že miesto, aby sa ďalšie Facebook, ale to je nejaký 193 00:09:34,220 --> 00:09:35,610 druh výpočtovej práce. 194 00:09:35,610 --> 00:09:39,570 >> A môžete si predstaviť, že s výmenou nejaký iný druh zaujímavý 195 00:09:39,570 --> 00:09:43,070 výpočtovej práce. 196 00:09:43,070 --> 00:09:46,050 Povedzme, že ste písali niečo ktorý počítal stupňov 197 00:09:46,050 --> 00:09:49,170 separácia medzi dvoma ľuďmi alebo niečo také. 198 00:09:49,170 --> 00:09:51,860 Takže to robí zahŕňať nejaký druh výpočtu, nie? 199 00:09:51,860 --> 00:09:56,630 A aj potom, k tomu, že stále máte urobiť veľa čakania na možná 200 00:09:56,630 --> 00:09:59,550 Máte otázku na databáze sa pozrieť up, ktorý je priateľom, ktorý alebo 201 00:09:59,550 --> 00:10:00,600 niečo také. 202 00:10:00,600 --> 00:10:03,510 Takže tam je to trochu pojmu z výpočtovej práce. 203 00:10:03,510 --> 00:10:05,260 Má to zmysel? 204 00:10:05,260 --> 00:10:08,258 Má niekto nejaké otázky? 205 00:10:08,258 --> 00:10:11,960 >> Jo a myslím, že som dal chatovacie servery tu pretože chatovacie servery sú druh 206 00:10:11,960 --> 00:10:13,240 Ďalším dobrým príkladom. 207 00:10:13,240 --> 00:10:15,250 Chatu server nemá robiť veľa premýšľať. 208 00:10:15,250 --> 00:10:18,350 To jednoducho musí čakať na ľudí, aby posielanie správ a potom, keď 209 00:10:18,350 --> 00:10:19,800 oni, pošlite ich. 210 00:10:19,800 --> 00:10:21,050 OK? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> Takže len preto, aby znovu rekapitulovať, Apache a podobné webové servery, ako že vidlica 213 00:10:28,180 --> 00:10:31,470 Mnoho procesov a podprocesov, ktoré môže byť trochu márnotratné. 214 00:10:31,470 --> 00:10:37,530 Takže myslím, že na otázku, ktorá môže prísť z ktorej je potrebujeme mať 215 00:10:37,530 --> 00:10:39,610 viac podprocesov a procesov? 216 00:10:39,610 --> 00:10:41,890 Čo keby sme mali jedno? 217 00:10:41,890 --> 00:10:45,710 >> Takže poďme sa trochu namaľovať obrázok o tom, čo by to vyzerať. 218 00:10:45,710 --> 00:10:47,810 Takže poďme použiť iba jeden závit. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 Tak len si to s jedným závitom. 221 00:10:52,790 --> 00:10:56,600 >> Predpokladajme, že sme naozaj robí že veľa užitočné - a keď hovorím 222 00:10:56,600 --> 00:10:59,450 užitočné, myslím výpočtovej práce - 223 00:10:59,450 --> 00:11:01,130 v tých niekoľkých vlákien predtým. 224 00:11:01,130 --> 00:11:04,180 Takže poďme trochu konsolidovať všetko v jednom vlákne. 225 00:11:04,180 --> 00:11:07,780 Tak čo keby sme mali jedno vlákno tohto druhu zo len ide okolo slučky a 226 00:11:07,780 --> 00:11:10,880 neustále kontroluje urobil niečo nový štát. 227 00:11:10,880 --> 00:11:15,130 Tak napríklad, niečo nové sa stalo mohol povedať, že som niečo späť od 228 00:11:15,130 --> 00:11:19,310 databázy, alebo niekto poslal mi nový požiadavku HTTP. 229 00:11:19,310 --> 00:11:22,290 Takže to sú druhy akcií aby sa to stalo, nie? 230 00:11:22,290 --> 00:11:26,130 >> A potom, čo môžem robiť, keď tie nové veci sa dejú v tomto rovnakom vlákne 231 00:11:26,130 --> 00:11:30,120 realizácie, tento jediný závit prevedenie, môžem zavolať nejaký kód, ktorý 232 00:11:30,120 --> 00:11:32,410 by zvládnuť túto konkrétnu vec. 233 00:11:32,410 --> 00:11:36,640 Tak napríklad, keď som niečo späť z databázy, mohol som bežať môj 234 00:11:36,640 --> 00:11:40,960 malá výpočtovej časť, ktorá vlastne len pripravuje na vec 235 00:11:40,960 --> 00:11:42,620 zaslať späť užívateľovi. 236 00:11:42,620 --> 00:11:46,710 Tak to robí trochu zmysel? 237 00:11:46,710 --> 00:11:49,940 >> Ale čo je naozaj dôsledky to? 238 00:11:49,940 --> 00:11:50,660 Je to tak? 239 00:11:50,660 --> 00:11:53,730 Vzhľadom k tomu, že sme napísal veľa kódu, ktorý - 240 00:11:53,730 --> 00:11:58,330 a ja len tak na skok dopredu na diapozitívy, či je to v poriadku. 241 00:11:58,330 --> 00:12:00,930 Takže ak vám to nevadí, ja som len chystá urobiť krok späť. 242 00:12:00,930 --> 00:12:03,410 Takže tento druh vecí je tzv slučky udalostí. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 A to je docela základné Myšlienka Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Takže to, čo Node.js je naozaj robí ako web Server je tam jeden závit 246 00:12:11,240 --> 00:12:14,850 , Ktorý je v podstate deje okolo v slučke ako, zatiaľ čo jedna druhov nedostatočne 247 00:12:14,850 --> 00:12:18,510 kapucňa v Node.js to neustále kontroly, sme prijímať nové veci? 248 00:12:18,510 --> 00:12:22,720 A potom to bude fungovať manipulátory ktoré ste nastavili. 249 00:12:22,720 --> 00:12:26,720 Ale dobrý na niečo opýtať, je, ako môžeme urobiť to stalo 250 00:12:26,720 --> 00:12:28,090 s existujúcimi vecami? 251 00:12:28,090 --> 00:12:32,440 >> Tak som dal riadok kódu C tu, že v podstate vyzerá to, že otvorenie 252 00:12:32,440 --> 00:12:33,060 súbor, nie? 253 00:12:33,060 --> 00:12:36,090 Aj ona práve vyšiel s albumom. 254 00:12:36,090 --> 00:12:39,600 Tak som ju musel otvoriť nový súbor. 255 00:12:39,600 --> 00:12:43,810 Takže ako naše C kód pre prevádzku - 256 00:12:43,810 --> 00:12:47,890 a myslím, že dôvod, prečo som si vybral súborov bol pretože to je druh rozsahu 257 00:12:47,890 --> 00:12:52,000 o I / O prácu, ktorú sme urobili v C pocit, že tam je vstup a výstup. 258 00:12:52,000 --> 00:12:55,070 Tak nazývame tento kód, ktorý robí to f otvorený. 259 00:12:55,070 --> 00:12:59,370 A potom na ďalší riadok našich Program, teraz môžeme pracovať s f. 260 00:12:59,370 --> 00:13:02,710 >> Takže by to byť príkladom niečoho to je ako synchrónne alebo 261 00:13:02,710 --> 00:13:06,850 blokovanie, pretože na tomto prvom riadku tam čakáme, kým sa 262 00:13:06,850 --> 00:13:08,110 získať súbor otvorený. 263 00:13:08,110 --> 00:13:12,260 Takže na druhom riadku, vieme, že môže pracovať s f, ale to znamená, že 264 00:13:12,260 --> 00:13:16,240 že druhý riadok nemôžem spustiť do prvý riadok je hotovo. 265 00:13:16,240 --> 00:13:17,760 Má to zmysel? 266 00:13:17,760 --> 00:13:20,890 >> Tak to by bolo zlé, aby v obslužnej rutine udalosti. 267 00:13:20,890 --> 00:13:23,920 A dôvodom je, že tento druh čaká, že jo? 268 00:13:23,920 --> 00:13:26,500 Tak to by nás vrátiť späť na rovnakú vec. 269 00:13:26,500 --> 00:13:29,470 A teraz by sme ani prínosom viac vlákien alebo 270 00:13:29,470 --> 00:13:32,390 procesy, pretože sme dostali jeden závit Node.js. 271 00:13:32,390 --> 00:13:35,496 Znamená to, že zmysel pre každého? 272 00:13:35,496 --> 00:13:35,990 >> DIVÁKOV: Počkajte. 273 00:13:35,990 --> 00:13:36,980 Takže to, čo je výmena? 274 00:13:36,980 --> 00:13:37,840 >> KEVIN SCHMID: Oh, tak áno. 275 00:13:37,840 --> 00:13:39,560 Takže budem sa dostať do náhradné. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Tak čo keby sme mali niečo ktorý vyzeral takto? 278 00:13:42,960 --> 00:13:45,730 Takže čo keď teraz som upravil f otvoriť trochu? 279 00:13:45,730 --> 00:13:48,370 Takže som okolo v rovnakej dva argumenty ako predtým. 280 00:13:48,370 --> 00:13:52,610 Stále ťa milujem novú pieseň ktorá vyšla s 281 00:13:52,610 --> 00:13:57,260 Ale ja som okolo tretej vec, ktorá je táto premenná nazýva kód. 282 00:13:57,260 --> 00:14:02,280 >> Ale čo je vlastne kód v tejto súvislosti? 283 00:14:02,280 --> 00:14:05,360 Je to ako bežné premenné C? 284 00:14:05,360 --> 00:14:06,740 Je to funkcia, nie? 285 00:14:06,740 --> 00:14:09,450 A to môže byť preto, že trochu divný Som vlastne ako teraz okolo 286 00:14:09,450 --> 00:14:12,320 funkcie do inej funkcie. 287 00:14:12,320 --> 00:14:14,400 >> Takže pár postrehov o tom. 288 00:14:14,400 --> 00:14:17,145 Po prvé, ja nie som v skutočnosti volanie kód funkcie. 289 00:14:17,145 --> 00:14:20,650 Takže nevidíte kód vľavo zátvorka, pravá zátvorka. 290 00:14:20,650 --> 00:14:23,010 Len som okolo v kóde. 291 00:14:23,010 --> 00:14:26,990 A v C, čo by to vlastne robiť je mi dať ukazovateľ, že skutočná 292 00:14:26,990 --> 00:14:29,740 kód, a potom by to mohlo spustiť. 293 00:14:29,740 --> 00:14:33,350 Ale len premýšľať o tom, ako ste absolvovaní spustenie kódu, ak 294 00:14:33,350 --> 00:14:35,150 že súbor je otvorený. 295 00:14:35,150 --> 00:14:41,430 >> Ale čo to znamená, že teraz Zvyšok môjho programu, ktorý by mohol robiť 296 00:14:41,430 --> 00:14:47,050 ďalšie veci, môžu pokračovať v tom iný veci, zatiaľ čo my, naozaj nie čakať, ale 297 00:14:47,050 --> 00:14:50,890 len v zadnej časti našich hlavách, že pri otvorení, beh tohto súboru je, že 298 00:14:50,890 --> 00:14:52,130 Kód na vrchole. 299 00:14:52,130 --> 00:14:53,390 Má to zmysel? 300 00:14:53,390 --> 00:14:58,060 >> A teraz myšlienkou Node.js je, že kód vo robiť veci s f 301 00:14:58,060 --> 00:15:04,590 časť by mala byť dosť krátke a jednoduché a jednoduché a nie je naozaj byť 302 00:15:04,590 --> 00:15:06,160 veľmi výpočtovo náročné. 303 00:15:06,160 --> 00:15:09,390 To môže otvoriť iný súbor, ale ktoré by mali byť tiež celkom rýchlo 304 00:15:09,390 --> 00:15:14,710 pretože to by jednoducho povedať, urobiť ďalšie f otvoriť a potom volať toto ďalší kód. 305 00:15:14,710 --> 00:15:19,100 >> Takže len úplne jasné, f otvorení, ktoré prináša nová Katy Perry pieseň 306 00:15:19,100 --> 00:15:23,060 done mp3, že to bude dosť moc sa okamžite vráti. 307 00:15:23,060 --> 00:15:27,820 A potom sa môžeme len pokračovať v tom, ďalšie veci, pretože všetko, čo teraz f 308 00:15:27,820 --> 00:15:33,410 Otvorená výzva sa je povedať v podstate Základným f otvorený kód otvoriť tento súbor 309 00:15:33,410 --> 00:15:36,020 a keď ste hotoví otvorení tejto súboru, alebo keď si to späť, 310 00:15:36,020 --> 00:15:37,480 spustite tento kód. 311 00:15:37,480 --> 00:15:39,540 Ale to nie je v skutočnosti spustený tento kód. 312 00:15:39,540 --> 00:15:41,815 A vy ste mal otázku? 313 00:15:41,815 --> 00:15:46,180 >> DIVÁKOV: Zdalo sa mi naznačiť, pár časy, že pridanie výpočtovo 314 00:15:46,180 --> 00:15:50,545 intenzívny kód nejako rozbiť [Nepočuteľné] riadený systém. 315 00:15:50,545 --> 00:15:51,795 [Nepočuteľný]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> KEVIN SCHMID: To je veľká otázka. 318 00:15:55,290 --> 00:15:59,280 Takže som vlastne máme príklad toho, ako môžete integrovať výpočtovo 319 00:15:59,280 --> 00:16:01,090 intenzívny kód v trochu. 320 00:16:01,090 --> 00:16:03,620 Takže, keď sa dostaneme do príkladoch kódu, Budem určite vytiahnuť, že jeden. 321 00:16:03,620 --> 00:16:04,700 Je to v poriadku? 322 00:16:04,700 --> 00:16:05,950 Ďakujem. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Aké bolo vaše meno? 325 00:16:08,750 --> 00:16:10,620 >> DIVÁKOV: Aaron. 326 00:16:10,620 --> 00:16:14,830 >> KEVIN SCHMID: Aaron prináša až veľmi dobrý bod, čo je to, že keď som mal 327 00:16:14,830 --> 00:16:18,560 niektoré výpočtovo náročné kód robiť veci s f časť, zvyšok 328 00:16:18,560 --> 00:16:22,880 môj program nemožno spustiť a nemôže počúvať pre nové žiadosti, alebo nič, kým všetci 329 00:16:22,880 --> 00:16:24,270 že vec je dokončená. 330 00:16:24,270 --> 00:16:27,390 Takže keď píšem kód uzla všeobecne ak urobíme niečo ako ja idem 331 00:16:27,390 --> 00:16:33,060 navrhnúť neskôr, keď sa pozrieme na príklady kódu, musím si byť istí, že 332 00:16:33,060 --> 00:16:36,060 môj kód nie je priviazať táto slučka udalosť. 333 00:16:36,060 --> 00:16:38,120 Má to zmysel? 334 00:16:38,120 --> 00:16:38,350 OK. 335 00:16:38,350 --> 00:16:40,040 V pohode. 336 00:16:40,040 --> 00:16:47,090 >> Takže Node.js ponúka tento rámec, ktorý môžete vytvoriť tieto udalosti riadený 337 00:16:47,090 --> 00:16:48,210 Servery sa. 338 00:16:48,210 --> 00:16:53,460 Tak to má tento druh asynchrónne neblokujúcou I / O knižnice, vzhľadom k tomu, 339 00:16:53,460 --> 00:16:56,800 štandardnej knižnice C, ktoré sme boli prácu s, ako keď ste práve 340 00:16:56,800 --> 00:16:59,500 používať rovnakým spôsobom, že sme Používam je s f otvorí a 341 00:16:59,500 --> 00:17:03,000 veci, ktoré sú blokovania, pretože ste skutočne musieť počkať 342 00:17:03,000 --> 00:17:04,470 tento súbor otvoriť. 343 00:17:04,470 --> 00:17:09,290 >> Ale Node.js vám to dáva, a to v podstate nadväzuje na Google V8 344 00:17:09,290 --> 00:17:14,030 JavaScript engine, ktorý je dôvod, že Chrome je v spracovaní tak rýchlo, 345 00:17:14,030 --> 00:17:17,040 JavaScript, pretože má tento motor V8. 346 00:17:17,040 --> 00:17:22,460 Takže viem, že to znie ako jeden z tých, WWDC vývojárskej konferencie vec 347 00:17:22,460 --> 00:17:25,390 kde sa len hodiť veľa číslo písmeno veci pre procesory 348 00:17:25,390 --> 00:17:26,910 a hovoria, že je to v pohode. 349 00:17:26,910 --> 00:17:34,200 Ale to je v pohode, že to urobili to preto, že JavaScript - 350 00:17:34,200 --> 00:17:37,010 alebo možno, ak nie ste oboznámení s JavaScript napriek tomu, pretože sme nemali 351 00:17:37,010 --> 00:17:38,180 prednášky na ňom - 352 00:17:38,180 --> 00:17:40,770 ale JavaScript je interpretovaný jazyk. 353 00:17:40,770 --> 00:17:41,970 >> A to je dôležité tiež. 354 00:17:41,970 --> 00:17:45,790 Takže je to dôležité pre náš web Servery byť rýchly, že jo? 355 00:17:45,790 --> 00:17:49,970 A keď sme boli len beh kódu JavaScript kód, ktorý bol vyložený len s 356 00:17:49,970 --> 00:17:52,130 nejaký starý interpret by to mohlo byť pomalé. 357 00:17:52,130 --> 00:17:55,980 Takže uzla ťaží z nutnosti tento super rýchly V8 tlmočníka. 358 00:17:55,980 --> 00:17:59,580 A ja neviem, či sa volal ho pretože V8 facka do čela 359 00:17:59,580 --> 00:18:01,110 vec, ale OK. 360 00:18:01,110 --> 00:18:07,070 >> Tak som si pripravil niekoľko príkladov na tejto adrese URL. 361 00:18:07,070 --> 00:18:10,490 Po seminári, som nejako bude hovoriť o tom, ako môžete získať sadu uzla 362 00:18:10,490 --> 00:18:13,570 , Ale teraz, som len trochu chcieť prejsť niekoľko príkladov kódu. 363 00:18:13,570 --> 00:18:17,250 Takže ak chcete sledovať spolu, všetky Zdrojový kód je k dispozícii tu. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> Tak som si nechať túto adresu URL pre málo. 366 00:18:22,280 --> 00:18:24,440 A potom som len tak prepnutie do terminálu. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 Sú všetci dobre s týmto URL? 369 00:18:34,400 --> 00:18:37,990 Takže budem prepínať k môjmu terminálu tu. 370 00:18:37,990 --> 00:18:42,030 >> Tak tu je kód, ktorý Mám na dnešok. 371 00:18:42,030 --> 00:18:43,960 Prečo nie začneme s simpler.js súbor? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Druhá vec je, že to všetko kód sa bude napísaný v 374 00:18:52,100 --> 00:18:56,660 JavaScript ktoré môžu alebo nemusí byť poznať. 375 00:18:56,660 --> 00:19:00,170 Myslím, že pár vecí je to, že mnoho kódu JavaScript je druh 376 00:19:00,170 --> 00:19:04,000 syntax a štruktúra je veľmi podobná C, takže môžete trochu zdvihnúť ako 377 00:19:04,000 --> 00:19:05,020 idete spolu. 378 00:19:05,020 --> 00:19:08,750 Snažil som sa napísať veľa predvolený kód pre tento takým spôsobom, ktorý je 379 00:19:08,750 --> 00:19:11,230 podobne ako C, tak, že je trochu čitateľnejšie. 380 00:19:11,230 --> 00:19:15,980 Ale ako postupovať, budem demonštrovať niektoré dodatočné 381 00:19:15,980 --> 00:19:18,980 funkcie JavaScript, ktoré sú celkom v pohode. 382 00:19:18,980 --> 00:19:21,510 >> Ale poďme sa pozrieť na tento ukážkový program. 383 00:19:21,510 --> 00:19:24,820 Myslím, že všetko, čo je odrezať tam. 384 00:19:24,820 --> 00:19:28,500 Ja som jednoducho ísť opraviť, že skutočná rýchlo, pokiaľ je to v poriadku, alebo nie. 385 00:19:28,500 --> 00:19:31,400 Ja neviem, čo to bude robiť. 386 00:19:31,400 --> 00:19:34,660 Je to trochu lepšie? 387 00:19:34,660 --> 00:19:36,510 Vidíte var a tak? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Takže prvý riadok je ako JavaScript version premenné 390 00:19:44,120 --> 00:19:44,800 vyhlásenie. 391 00:19:44,800 --> 00:19:49,870 Takže len upozorniť na to, čo to by vyzerať ako v C. Takže je to len ako 392 00:19:49,870 --> 00:19:52,620 mi hovorí, index sa rovná tri alebo niečo také. 393 00:19:52,620 --> 00:19:55,740 Tak som neuviedol typ. 394 00:19:55,740 --> 00:20:00,780 JavaScript má mať typ, ale je to veľmi dynamicky napísaný v prírode, tak 395 00:20:00,780 --> 00:20:02,580 neposkytla žiadny druh druhu na neho. 396 00:20:02,580 --> 00:20:03,670 Tak to proste je var. 397 00:20:03,670 --> 00:20:05,320 To je ako premenné. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> A ja volám túto premennú HTTP. 400 00:20:08,340 --> 00:20:12,480 A na mojej pravej strane, mám Výraz, ktorý chcem dať do HTTP. 401 00:20:12,480 --> 00:20:14,960 A to hovorí vyžaduje HTTP. 402 00:20:14,960 --> 00:20:18,500 Tak to je celkom podobný obsahovať. 403 00:20:18,500 --> 00:20:22,940 Je to trochu ako silnejšie ako sú v tom zmysle, že zahŕňajú 404 00:20:22,940 --> 00:20:26,100 by len skopírovať a vložiť hlavičku súbor pre funkčné prototypy alebo 405 00:20:26,100 --> 00:20:27,930 čo s definíciami typu. 406 00:20:27,930 --> 00:20:30,590 Ale treba sa v skutočnosti deje k nám dostanete kód. 407 00:20:30,590 --> 00:20:33,280 >> Takže si môžete myslieť na to, ako import nejaký kód. 408 00:20:33,280 --> 00:20:37,960 Takže niekde v module Node.js systém alebo čo, že majú všetko 409 00:20:37,960 --> 00:20:40,790 Kód HTTP server, takže som len načítanie je pre moje vlastné 410 00:20:40,790 --> 00:20:43,130 osobné využitie tohto programu. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> Tak som si túto funkciu ktoré som napísal. 413 00:20:46,930 --> 00:20:50,330 A Všimol som si nemusel špecifikovať návratový typ alebo typ 414 00:20:50,330 --> 00:20:51,140 argumenty znova. 415 00:20:51,140 --> 00:20:54,440 Tak trochu voľné zadali tento druh zmysle. 416 00:20:54,440 --> 00:20:57,290 Dva argumenty, že sa berie v, požiadavku a odpoveď. 417 00:20:57,290 --> 00:21:02,080 Tak to je koncepčne niečo ako známe z obrázku, že sme mali 418 00:21:02,080 --> 00:21:05,280 Na obrazovke sa skôr, pretože dostaneme túto požiadavku, že 419 00:21:05,280 --> 00:21:06,410 majú od užívateľa. 420 00:21:06,410 --> 00:21:09,170 A potom máme odpoveď, ktorá môžeme písať veci. 421 00:21:09,170 --> 00:21:15,060 >> Takže prvý riadok to robí res.writeHead 200 a potom to 422 00:21:15,060 --> 00:21:17,070 Typ obsahu textu jasné. 423 00:21:17,070 --> 00:21:19,300 Takže poďme sa tento kúsok od seba trochu. 424 00:21:19,300 --> 00:21:22,340 Takže poďme sa sústrediť len na res.write pre málo. 425 00:21:22,340 --> 00:21:28,420 Takže zápisnica je v podstate, a zapisovacie hlavy, sú len spôsoby, ako sa trochu vypísať 426 00:21:28,420 --> 00:21:29,960 veci na odpoveď. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 Takže písať hlavu, či niekto pamätá z prednášky HTTP, si chlapci 429 00:21:36,230 --> 00:21:39,940 pamätať záhlavie na Horná veci HTTP? 430 00:21:39,940 --> 00:21:43,580 Tak prečo nie ja len demo záhlavie naozaj rýchlo. 431 00:21:43,580 --> 00:21:44,640 Bolo by to užitočné? 432 00:21:44,640 --> 00:21:45,500 Alebo by sme mali len trochu - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 Iste. 435 00:21:46,740 --> 00:21:52,340 >> Takže keď váš prehliadač prejde na google.com alebo niečo také, 436 00:21:52,340 --> 00:21:54,250 je to vlastne trochu viac - 437 00:21:54,250 --> 00:21:55,380 je to ako tajomstvo - 438 00:21:55,380 --> 00:21:58,340 tam je ako trochu viac informácií ktorá prichádza skrze potrubie, než len 439 00:21:58,340 --> 00:22:00,180 Trochu hľadanie a všetko. 440 00:22:00,180 --> 00:22:03,550 Takže vám to ukázať, idem použiť program s názvom Curl. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 Tak to je niečo, čo môžete spustiť na váš Mac OSX príkazového riadku alebo v 443 00:22:08,020 --> 00:22:09,830 zariadenie alebo čokoľvek iného. 444 00:22:09,830 --> 00:22:17,050 A tak keď som sa Curl HTTP google.com, Idem vidieť HTML. 445 00:22:17,050 --> 00:22:21,230 A to je, v spravodlivosť, len HTML, ktorý druh vám povie 446 00:22:21,230 --> 00:22:24,695 presmerovanie na www, ak váš prehliadač nepodporuje automaticky spracovávať 447 00:22:24,695 --> 00:22:27,110 presmerovanie. 448 00:22:27,110 --> 00:22:33,390 >> Tak to je len HTML, ale idem pridať k Curl túto pomlčku som vlajku. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 A to bude ukázať mi hlavičky. 451 00:22:35,600 --> 00:22:40,640 Takže to je tiež informácia, že je až keď som si túto odpoveď. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> Takže hore, vidíte to HTTP 301 presunúť natrvalo. 454 00:22:45,320 --> 00:22:49,470 A to je docela dôležité, pretože toto sa odkazuje na stavovom kóde. 455 00:22:49,470 --> 00:22:53,750 Takže 301 je tu stavový kód, čo je v podstate len číslo 456 00:22:53,750 --> 00:22:57,750 ktorá hovorí prehliadači, alebo ten, kto je čítaní tohto, ak sa predstierať, že 457 00:22:57,750 --> 00:23:01,460 ste prehliadač a vidíte to, v podstate teraz keď sa pozriete na 458 00:23:01,460 --> 00:23:04,960 to a uvidíte 301, viete, mám urobiť niečo špeciálneho na základe 459 00:23:04,960 --> 00:23:08,810 301, alebo niečo zvláštne sa stalo vztiahnuté na 301. 460 00:23:08,810 --> 00:23:12,640 Tak to hovorí presťahoval natrvalo. 461 00:23:12,640 --> 00:23:17,700 >> A potom, v podstate, máme banda kľúče a hodnoty. 462 00:23:17,700 --> 00:23:22,100 Tak sme sa na miesto je www.google.com. 463 00:23:22,100 --> 00:23:25,190 A potom sa trochu všetko ostatné veci, ale v podstate to, čo miesto je 464 00:23:25,190 --> 00:23:29,662 príslovie je nové umiestnenie je na www.google.com. 465 00:23:29,662 --> 00:23:33,800 Takže teraz, ak pôjdete do google.com, budete si musieť vybrať trochu vidieť druh prehliadača na mihnutia 466 00:23:33,800 --> 00:23:38,770 za druhé a potom presmerovať späť na www.google.com. 467 00:23:38,770 --> 00:23:41,840 Takže odpovede môžu obsahovať Tieto hlavičky. 468 00:23:41,840 --> 00:23:43,330 >> A pár vecí, ktoré poukazujú. 469 00:23:43,330 --> 00:23:46,890 Takže povedzme, že sme boli naozaj úspešní pri návšteve webovej stránky. 470 00:23:46,890 --> 00:23:49,040 Tak nechaj ma ísť do - 471 00:23:49,040 --> 00:23:51,080 Čo je dobré webové stránky? 472 00:23:51,080 --> 00:23:53,285 Som zlý myslenia dobré webové stránky na mieste. 473 00:23:53,285 --> 00:23:53,640 >> DIVÁKOV: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> KEVIN SCHMID: OK. 475 00:23:54,160 --> 00:23:56,040 Poďme urobiť Wikipédii. 476 00:23:56,040 --> 00:23:58,680 Tak tu som bol dojatý. 477 00:23:58,680 --> 00:23:59,240 Ale počkajte. 478 00:23:59,240 --> 00:24:00,160 Bola som? 479 00:24:00,160 --> 00:24:00,890 Áno, bol som. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Tak som sa dostal k tomu www. 482 00:24:03,005 --> 00:24:06,006 Takže budem robiť www. 483 00:24:06,006 --> 00:24:09,680 A ako vidíte, tu je všetko HTML , Že prehliadač spracuje 484 00:24:09,680 --> 00:24:10,910 pre Wikipédiu. 485 00:24:10,910 --> 00:24:14,055 >> Ale keď som sa držať rolovanie tu, čo budem vidieť hore - 486 00:24:14,055 --> 00:24:17,800 wow, je tu veľa HTML na Wikipédii - 487 00:24:17,800 --> 00:24:22,550 ale to, čo vidím na vrchole je tu Tento 200 stavový kód, ako protichodný k 488 00:24:22,550 --> 00:24:24,570 301, že som videl skôr. 489 00:24:24,570 --> 00:24:27,100 A všimnite si, že to má pekný priateľský OK vedľa nej. 490 00:24:27,100 --> 00:24:29,470 Takže je to ako dobrý stavovým kódom. 491 00:24:29,470 --> 00:24:31,160 >> Znamená to, že 200 počet vyzerajú povedome? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Áno, pretože keď som simpler.js, Som napísal 200 tam. 494 00:24:39,880 --> 00:24:43,290 Tak to je v podstate hovorí, povedzte prehliadač alebo ten, kto sa snaží dostať do 495 00:24:43,290 --> 00:24:45,440 to, že boli úspešní. 496 00:24:45,440 --> 00:24:49,040 Alebo, že druh ako my boli úspešné príliš. 497 00:24:49,040 --> 00:24:54,320 >> A tam je to trochu zvláštne syntaxe v JavaScriptu pre vyhlásenie 498 00:24:54,320 --> 00:24:59,870 mapa z týchto tlačidiel, ako je typ obsahu a tieto hodnoty ako textové rovine. 499 00:24:59,870 --> 00:25:03,780 Takže keď sa pozriete na odpoveď, že sme sa vrátil z Wikipédie skôr, - 500 00:25:03,780 --> 00:25:06,200 Budem sa snažiť posunúť sa trochu rýchlejšie - 501 00:25:06,200 --> 00:25:09,900 máte tieto klávesy ako servera a tieto hodnoty Apache. 502 00:25:09,900 --> 00:25:12,120 Takže máš kľúče a hodnoty. 503 00:25:12,120 --> 00:25:15,930 A môžete špecifikovať v Node, čo odoslať späť. 504 00:25:15,930 --> 00:25:19,380 >> Takže je to vlastne druh, v niektorých spôsoby, a v niektorých ohľadoch to nie je 505 00:25:19,380 --> 00:25:23,170 Naozaj, ale to je trochu nižšia úroveň ako PHP kód, ktorý by mohol byť 506 00:25:23,170 --> 00:25:26,980 písomne ​​P nastaviť sedem, pretože PHP a Apache nejako postarať sa o niektoré 507 00:25:26,980 --> 00:25:28,150 z týchto vecí pre vás. 508 00:25:28,150 --> 00:25:32,520 V PHP môžete prepísať predvolené správanie písanie vlastných hlavičky. 509 00:25:32,520 --> 00:25:35,520 Ale pre účely tohto, dostaneme písať naše vlastné hlavičky. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Takže to, že linka zmysel všetci, zapisovacie hlavy línie? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Úžasné. 514 00:25:42,280 --> 00:25:45,870 >> Tak čo mám robiť potom je, že som koniec odpoveď tým, hello world. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 Ale to je len funkcia tzv handler žiadosť. 517 00:25:49,920 --> 00:25:53,510 Takže teraz som vlastne musel trochu robiť niečo, čo sa tejto funkcie, že jo? 518 00:25:53,510 --> 00:25:59,170 >> Tak tu to, čo robím, je, že je to čiara, ktorá robí servera rovná var 519 00:25:59,170 --> 00:26:03,530 HTTP.create servera, a potom som odovzdať psovoda vyžiadanie. 520 00:26:03,530 --> 00:26:06,080 Takže je to trochu z uzla spôsob, ako vytvoriť server. 521 00:26:06,080 --> 00:26:08,790 A všimnite si, že som okolo v obslužnej rutine žiadosti. 522 00:26:08,790 --> 00:26:12,290 Takže je to hovorí createServer funkcie, ktoré chcem, aby si ma robiť 523 00:26:12,290 --> 00:26:16,270 servera, a keď to server dostane odpoveď, musím si zavolať to 524 00:26:16,270 --> 00:26:18,680 požiadať o funkciu spracovania. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> Tak, že linka do značnej miery končí hneď. 527 00:26:22,290 --> 00:26:28,780 Takže server linka var sa vykonáva priamo potom, čo robíte, že dosť veľa. 528 00:26:28,780 --> 00:26:31,770 Myslím, že to má nastaviť niektoré vnútorné stať, že budete musieť 529 00:26:31,770 --> 00:26:35,400 volanie tejto funkcie manipulačného žiadosť, ale že to nebude sedieť a 530 00:26:35,400 --> 00:26:37,730 dajme tomu má užívateľ odoslal mi ešte žiadosť? 531 00:26:37,730 --> 00:26:39,270 Má užívateľ mi poslal žiadosť ešte? 532 00:26:39,270 --> 00:26:40,780 Takže to neblokuje. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> Tak čo to bude robiť, je to v podstate sa uloží ukazovateľ na tento kód, 535 00:26:46,120 --> 00:26:49,670 táto funkcia spracovanie žiadosti, a potom pobeží tento kód, keď niekto 536 00:26:49,670 --> 00:26:52,170 vytvorí požiadavku. 537 00:26:52,170 --> 00:26:54,120 A potom sme to server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> 1337 je dosť subjektívne. 540 00:26:59,960 --> 00:27:02,285 Nemal som žiadny zvláštny dôvod pre uchopenie toto číslo. 541 00:27:02,285 --> 00:27:03,860 Bolo to úplne náhodné. 542 00:27:03,860 --> 00:27:07,010 Ale to len určuje port. 543 00:27:07,010 --> 00:27:10,640 Takže väčšina webových serverov, uvidíte, že použiť port 80, pretože to je niečo 544 00:27:10,640 --> 00:27:11,810 zo ako konvencie. 545 00:27:11,810 --> 00:27:16,170 Takže keď som sa ísť na niečo ako, Neviem, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 a dal som dvojbodku 8 - 547 00:27:17,700 --> 00:27:18,610 oh wow, nemôžete vidieť, že. 548 00:27:18,610 --> 00:27:19,370 Je mi to ľúto. 549 00:27:19,370 --> 00:27:21,820 Ale keď to urobím Wikipédii - 550 00:27:21,820 --> 00:27:24,810 Napíšem to sem len preto, aby je jasné, že na fotoaparáte. 551 00:27:24,810 --> 00:27:29,150 Ale keď som si to do prehliadača sa hrubého čreva 80, ktorý stanovuje, prejdite na 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org na porte 80. 553 00:27:31,430 --> 00:27:36,200 Takže je to ako, ako Spojené štáty majú viac porty, ako je, kde sa môžete dopraviť 554 00:27:36,200 --> 00:27:37,440 veci na druhu. 555 00:27:37,440 --> 00:27:40,730 Takže je to ako ísť na tento konkrétny miesto na tomto serveri. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Tak som si vybral 1337. 558 00:27:45,730 --> 00:27:47,910 K dispozícii je celý rad čísel že si môžete vybrať. 559 00:27:47,910 --> 00:27:50,390 To nebolo celkom zvláštne. 560 00:27:50,390 --> 00:27:54,560 >> Ale čo budem robiť teraz sa budem bežať uzol. 561 00:27:54,560 --> 00:27:59,730 Dovoľte mi, aby som vlastne zadajte, že pár riadky dole, takže ju môžete vidieť. 562 00:27:59,730 --> 00:28:03,130 Chystám sa urobiť uzol, a ja som chystá spustiť simpler.js. 563 00:28:03,130 --> 00:28:06,880 A budeme hovoriť o tom, ako sa dostať Uzol nastaviť v trochu. 564 00:28:06,880 --> 00:28:09,350 Ale teraz je to len beh servera. 565 00:28:09,350 --> 00:28:14,360 >> Takže jedna vec, ktorú môžete vyskúšať, ktoré nemusia sa stať, že vzrušujúce je, že môže skutočne 566 00:28:14,360 --> 00:28:16,300 pokuse o prístup k ho Curl. 567 00:28:16,300 --> 00:28:20,680 Takže môžem robiť Curl, a my Stroj je lokálny hostiteľ. 568 00:28:20,680 --> 00:28:24,600 Budete tiež vidieť písomné takhle niekedy. 569 00:28:24,600 --> 00:28:29,810 Miestneho hostiteľa a 127.0.0.1 sú druh zo ako v domácom počítači. 570 00:28:29,810 --> 00:28:33,180 Takže je to ako hovoriť do vlastný počítač. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> A potom môžem povedať, 1337. 573 00:28:36,030 --> 00:28:39,630 Takže keď som spustiť tento riadok kódu, sa hovorí, že hello world. 574 00:28:39,630 --> 00:28:44,050 A keď som chcel vidieť, že veci, ktoré Mal texte typ obsahu hladké alebo 575 00:28:44,050 --> 00:28:46,560 čo by som mohol ešte dať to sem. 576 00:28:46,560 --> 00:28:48,810 A všimnite si, že to hovoria v poriadku. 577 00:28:48,810 --> 00:28:50,810 A mám texte pláň. 578 00:28:50,810 --> 00:28:53,140 A potom je tu trochu všetko ostatné veci, ktoré Uzol sa pridá do 579 00:28:53,140 --> 00:28:54,440 tam pre mňa. 580 00:28:54,440 --> 00:28:55,700 To nie je veľmi dôležitá. 581 00:28:55,700 --> 00:28:58,230 >> Myslím, že tam sú nejaké technické aspekty na to sú druh 582 00:28:58,230 --> 00:29:02,280 v pohode hovoriť, ale len ukázať, vy, mám tiež moc 583 00:29:02,280 --> 00:29:03,070 zmeniť to okolo. 584 00:29:03,070 --> 00:29:06,280 Takže môžem len pridať veľa o také veci. 585 00:29:06,280 --> 00:29:11,780 A potom teraz, keď sa pozriem na môj výstup, bude sa stať, že. 586 00:29:11,780 --> 00:29:19,740 Takže tieto hlavičky znamenajú určité veci do prehliadača a podobné veci. 587 00:29:19,740 --> 00:29:23,040 >> A hlavičky možno v zásade povedať prehliadač ako reagovať na niečo. 588 00:29:23,040 --> 00:29:26,280 Ak ste niekedy počuli cookies skôr, alebo ak ste niekedy boli naštvaný 589 00:29:26,280 --> 00:29:29,330 o webovej stránke nastavenia cookies alebo akceptovanie cookies bloku alebo 590 00:29:29,330 --> 00:29:30,320 niečo také. 591 00:29:30,320 --> 00:29:33,040 Môžete dokonca nastaviť súbory cookie v týchto záhlaví. 592 00:29:33,040 --> 00:29:36,990 Takže povedať prehliadači, ako správanie v niektorých prípadoch. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Tak to bol simpler.js. 595 00:29:40,310 --> 00:29:42,780 Má niekto nejaké otázky, Na tomto zdrojový kód súboru? 596 00:29:42,780 --> 00:29:45,420 597 00:29:45,420 --> 00:29:45,610 OK. 598 00:29:45,610 --> 00:29:46,490 V pohode. 599 00:29:46,490 --> 00:29:50,780 >> Takže poďme odstrániť r od a pozrieť sa na simple.js. 600 00:29:50,780 --> 00:29:53,010 Tak to je docela veľa rovnaký program. 601 00:29:53,010 --> 00:29:56,030 Len som to napísal trochu inak pretože som chcel vyriešiť odlesku 602 00:29:56,030 --> 00:29:57,850 niektoré funkcie JavaScriptu. 603 00:29:57,850 --> 00:30:03,880 >> Tak zistíte, že psovod žiadosť Funkcia je úplne zmizol. 604 00:30:03,880 --> 00:30:05,800 Ach jo, si na niečo spýtať? 605 00:30:05,800 --> 00:30:08,200 >> Divákov: Jo, argumenty ktoré sú odovzdávané, že 606 00:30:08,200 --> 00:30:10,120 funkcie, k čomu sú? 607 00:30:10,120 --> 00:30:12,050 >> KEVIN SCHMID: Tak to sú JavaScript objekty. 608 00:30:12,050 --> 00:30:15,230 V dokumentácii Node.js, že v podstate hovorí, aké metódy sú 609 00:30:15,230 --> 00:30:15,910 k dispozícii na ne. 610 00:30:15,910 --> 00:30:19,602 Práve sme sa náhodou majú prístup k táto metóda nazýva zapisovacia hlava a koniec 611 00:30:19,602 --> 00:30:20,730 a tak podobne. 612 00:30:20,730 --> 00:30:22,590 Ale je tu celá partia viac metód. 613 00:30:22,590 --> 00:30:27,670 >> A napríklad, ako jeden z nich najmä pokiaľ ide o rek, môžete to urobiť 614 00:30:27,670 --> 00:30:34,540 niečo ako rec.method, ktoré bude povedať, či je to HTTP GET alebo 615 00:30:34,540 --> 00:30:36,780 HTTP POST požiadavke a podobné veci. 616 00:30:36,780 --> 00:30:39,100 Takže je tu všetky druhy líši vlastnosti, ale sú aj 617 00:30:39,100 --> 00:30:42,560 JavaScript objekty, a oni jednoducho majú funkcie s nimi spojené, ktoré vám 618 00:30:42,560 --> 00:30:43,850 Môžete písať veci. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> Takže všimnúť, že obslužná rutina žiadosti je úplne preč. 621 00:30:49,030 --> 00:30:52,650 Ale kód, ktorý som mal v žiadosti Psovod je tam stále. 622 00:30:52,650 --> 00:30:56,520 Stále mám tento res.writeHead a stále mám túto res.end. 623 00:30:56,520 --> 00:31:00,270 A čo to je príklad v JavaScript je táto myšlienka 624 00:31:00,270 --> 00:31:01,460 anonymné funkcie. 625 00:31:01,460 --> 00:31:04,180 a anonymné je ako názov armatúry , Z dôvodu, že doslova nie je 626 00:31:04,180 --> 00:31:05,180 majú meno. 627 00:31:05,180 --> 00:31:07,900 Neexistuje požiadavka funkcie Psovod tam. 628 00:31:07,900 --> 00:31:10,110 >> Nemá meno, ale je to stále je pri argument. 629 00:31:10,110 --> 00:31:12,250 Tak som ešte dostal rec a res. 630 00:31:12,250 --> 00:31:16,180 A stále mám kód. 631 00:31:16,180 --> 00:31:18,930 To je úplne v poriadku JavaScript kód. 632 00:31:18,930 --> 00:31:22,540 Takže môžem deklarovať funkciu bez výslovne dávať to meno. 633 00:31:22,540 --> 00:31:24,250 Je to na prvý pohľad trochu mätúce. 634 00:31:24,250 --> 00:31:26,230 Tam sú niektoré, ako užitočné veci ktoré môžete robiť s 635 00:31:26,230 --> 00:31:28,450 Tieto anonymné funkcie. 636 00:31:28,450 --> 00:31:32,100 Má niekto nejaké otázky na túto tému, alebo je to v poriadku len pre teraz, 637 00:31:32,100 --> 00:31:34,130 nejako jednoducho prijať, že bude robiť to isté? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Jo? 640 00:31:37,125 --> 00:31:38,680 >> DIVÁKOV: Sú funkcie prvý triedy v JavaScriptu? 641 00:31:38,680 --> 00:31:41,020 >> KEVIN SCHMID: Sú to prvé triedy v JavaScriptu. 642 00:31:41,020 --> 00:31:45,490 A len viem, že tieto pojmy prechádzajúcej v anonymnej funkcie, ako je 643 00:31:45,490 --> 00:31:49,600 to platí pre JavaScript, aby ste môže napísať v poslednom projekte 644 00:31:49,600 --> 00:31:51,260 webový prehliadač príliš. 645 00:31:51,260 --> 00:31:56,700 Tak napríklad, v kóde JavaScript Váš prehliadač, je to tiež trochu akcie 646 00:31:56,700 --> 00:32:00,680 riadený v tom zmysle, že to, čo budete majú je, keď používateľ klikne na to 647 00:32:00,680 --> 00:32:02,640 tlačidlo, chcem, aby si spustením tohto kódu. 648 00:32:02,640 --> 00:32:07,070 >> Takže je to rovnaký druh myšlienok na strane klienta, keď kliknutím myši, alebo sa 649 00:32:07,070 --> 00:32:09,870 myši nad nejakým obrazom na vašom webové stránky, spustiť tento kód. 650 00:32:09,870 --> 00:32:11,350 Ktoré možno použiť k serverom. 651 00:32:11,350 --> 00:32:16,380 Takže je to niečo ako vzrušujúce Dôvodom, prečo JavaScript je naozaj 652 00:32:16,380 --> 00:32:19,810 vhodné alebo niektorí ľudia si myslia, že je to vhodný jazyk pre tento druh 653 00:32:19,810 --> 00:32:22,530 Server Driver udalosť, pretože máte Tieto anonymné funkcie. 654 00:32:22,530 --> 00:32:26,150 Máte celú myšlienku Tento asynchrónny kód. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Má niekto nejaké otázky? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Tak to bol simple.js. 659 00:32:33,440 --> 00:32:38,070 Takže poďme sa pozrieť na jeden alebo pár ďalších. 660 00:32:38,070 --> 00:32:42,040 Tak toto je sleep.js. 661 00:32:42,040 --> 00:32:47,160 Takže je niekto pozná Funkcia sleep C? 662 00:32:47,160 --> 00:32:50,936 Asi z jednej z predchádzajúcich prednášok alebo niečo také? 663 00:32:50,936 --> 00:32:54,650 >> Takže v podstate sa môžete prejsť v Myslím, že počet sekúnd, alebo ak používate ú 664 00:32:54,650 --> 00:32:57,080 spať počet milisekúnd alebo nanosekúnd. 665 00:32:57,080 --> 00:33:00,450 A v podstate program zastaviť systémom pre túto dobu. 666 00:33:00,450 --> 00:33:01,280 Je to tak? 667 00:33:01,280 --> 00:33:06,970 A potom, že sa prebudí a nakoniec potom to bude len pokračovať v jazde 668 00:33:06,970 --> 00:33:08,340 programu. 669 00:33:08,340 --> 00:33:12,740 >> Takže tento server nejako dáva dojem spanie. 670 00:33:12,740 --> 00:33:17,580 Takže si všimnúť, že máme rovnaký res.writeHead 200 s hlavičkou ako 671 00:33:17,580 --> 00:33:22,130 predtým, ale potom sme volať to Funkcia tzv set timeout. 672 00:33:22,130 --> 00:33:26,170 Nastavte časový limit je tiež k dispozícii v váš webový prehliadač Google Chrome 673 00:33:26,170 --> 00:33:28,000 alebo Safari alebo čokoľvek iného. 674 00:33:28,000 --> 00:33:31,720 A v podstate to, čo to robí tu Je to trvá do funkcie. 675 00:33:31,720 --> 00:33:33,360 Všimnite si, opäť, je to anonymné funkcie. 676 00:33:33,360 --> 00:33:36,310 Tak to je celkom v pohode, pretože sme pomocou anonymné funkcie v rámci 677 00:33:36,310 --> 00:33:38,950 anonymné funkcie, ktorá môže byť trochu divné. 678 00:33:38,950 --> 00:33:42,270 >> Ale to brať túto funkciu, ktorá je v podstate hovorí - a ako to 679 00:33:42,270 --> 00:33:47,430 Práca je 5000 milisekúnd, chcem môžete spustiť túto funkciu, ktorá 680 00:33:47,430 --> 00:33:50,830 práve končí odpoveď a píše hej. 681 00:33:50,830 --> 00:33:56,730 Takže to pôsobí dojmom, ako spí, ale ako to v skutočnosti 682 00:33:56,730 --> 00:33:59,780 Pracuje sa budeme prejsť táto línia veľmi rýchlo. 683 00:33:59,780 --> 00:34:01,190 Práve sme niečo písať. 684 00:34:01,190 --> 00:34:03,780 A potom budeme tiež prejsť táto línia veľmi rýchlo. 685 00:34:03,780 --> 00:34:08,620 Takže sme vlastne deje na počkajte päť sekúnd. 686 00:34:08,620 --> 00:34:11,370 Sme len tak bežať Tento kód okamžite. 687 00:34:11,370 --> 00:34:14,219 >> A potom je tu opäť, tento malý udalosť slučka, ktorá má túto vec 688 00:34:14,219 --> 00:34:17,570 registre, ktoré v podstate je len Neustále sa točí v kruhu 689 00:34:17,570 --> 00:34:21,620 a pri pohľade na hodiny v jeden nite a hovorí, má päť sekúnd 690 00:34:21,620 --> 00:34:22,360 prešiel ešte? 691 00:34:22,360 --> 00:34:26,409 A potom, keď vidí, že druhý ruka sa presunula tak päť sekúnd alebo 692 00:34:26,409 --> 00:34:29,190 čokoľvek, potom sa prebudí a povie, oh, čo mám robiť? 693 00:34:29,190 --> 00:34:30,350 No musím sa spustením tohto kódu. 694 00:34:30,350 --> 00:34:33,110 A potom, že to bude spustiť res.end hej. 695 00:34:33,110 --> 00:34:35,360 >> Takže znova, my nikdy čakať tu. 696 00:34:35,360 --> 00:34:38,590 Takže to nie je, že tento kód vo vnútri táto funkcia bude trvať päť 697 00:34:38,590 --> 00:34:39,900 sekúnd bežať. 698 00:34:39,900 --> 00:34:43,090 Tento kód bude bežať do značnej miery okamžite, aspoň vo vzťahu k 699 00:34:43,090 --> 00:34:46,139 päť sekúnd, po ktorej sme hovorili o skôr predtým. 700 00:34:46,139 --> 00:34:52,100 >> Takže len to ukázať v akcii, Môžem robiť Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 A robil som to bordel až niečo? 702 00:34:55,159 --> 00:34:56,310 Možno. 703 00:34:56,310 --> 00:34:57,410 Prepáčte. 704 00:34:57,410 --> 00:34:59,530 Pozrime sa, čo môžeme urobiť, opraviť to. 705 00:34:59,530 --> 00:35:10,830 706 00:35:10,830 --> 00:35:12,080 OK. 707 00:35:12,080 --> 00:35:15,460 708 00:35:15,460 --> 00:35:17,464 Takže určite používať Node.js. 709 00:35:17,464 --> 00:35:19,440 Ja som si srandu. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Len jeden sec. 712 00:35:20,820 --> 00:35:27,380 713 00:35:27,380 --> 00:35:27,900 OK. 714 00:35:27,900 --> 00:35:29,130 Ja viem, čo to je. 715 00:35:29,130 --> 00:35:34,440 >> Takže problém je, že v mojej druhej záložke tu, som bežal Uzol už na 716 00:35:34,440 --> 00:35:36,590 že rovnaká adresa, 1337. 717 00:35:36,590 --> 00:35:43,370 Takže chyba, že to hodil, ak sa pozrieme na to skutočná pozorne, je adresa 718 00:35:43,370 --> 00:35:45,180 použitie, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Tak som sa už s použitím 1337 tu. 720 00:35:47,970 --> 00:35:52,210 Takže keď som zavrel to preč, a potom som sa podnikom skúste spustiť to, dúfajme, že všetko, čo 721 00:35:52,210 --> 00:35:53,210 bude v poriadku. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Takže môžete mať iba jednu vec druhu načúvanie na porte naraz. 724 00:35:57,020 --> 00:35:59,660 Ďalším riešením by bolo pre mňa len editovať tento program a skontrolujte, 725 00:35:59,660 --> 00:36:02,370 to bude ako 1338 alebo tak niečo takto. 726 00:36:02,370 --> 00:36:04,100 >> Ale teraz spánok beží. 727 00:36:04,100 --> 00:36:06,400 Takže poďme vlastne to vyskúšať v Prehliadač tentoraz, pretože je to 728 00:36:06,400 --> 00:36:09,080 trochu nezaujímavý vidieť , Že v termináli. 729 00:36:09,080 --> 00:36:13,560 Takže som jednoducho ísť na to 127 adresa opäť na 1337. 730 00:36:13,560 --> 00:36:14,850 A ak ste ho vidieť - 731 00:36:14,850 --> 00:36:18,050 Ja neviem, či je to možné - ale my Prehliadač je brať veľmi, veľmi dlho 732 00:36:18,050 --> 00:36:20,600 čas na načítanie alebo ako päť sekúnd. 733 00:36:20,600 --> 00:36:23,460 >> A potom to, že konečne ukončil odpoveď. 734 00:36:23,460 --> 00:36:29,070 A nemôžete vidieť, pretože to sa presunul trochu, ale keď urobím 735 00:36:29,070 --> 00:36:32,500 to o niečo menšie, môžete môžete vidieť, že hovorí, že hej. 736 00:36:32,500 --> 00:36:35,130 Tak som hej, ale po piatich sekundách. 737 00:36:35,130 --> 00:36:38,510 A to by mohlo byť trochu čistejšie vidieť je to tu na termináli, takže som 738 00:36:38,510 --> 00:36:40,980 robiť - 739 00:36:40,980 --> 00:36:43,540 Poďme urobiť tu - 740 00:36:43,540 --> 00:36:48,370 Poďme urobiť Curl tejto adrese opäť s 1337. 741 00:36:48,370 --> 00:36:50,820 A ja som tak nejako sedieť Tu po dobu piatich sekúnd. 742 00:36:50,820 --> 00:36:53,760 Ale všimnite si, že server môže prijať nové opatrenia. 743 00:36:53,760 --> 00:36:54,940 Tak to vytlačí hej. 744 00:36:54,940 --> 00:36:58,720 >> A demo to, v podstate to, čo Môžem robiť v tejto druhej záložke - 745 00:36:58,720 --> 00:37:02,640 takže povedzme, že som to urobiť v inom karte, Budem robiť Curl a rovnaký 746 00:37:02,640 --> 00:37:03,780 vec znova. 747 00:37:03,780 --> 00:37:06,600 A budem sa snažiť, aby kopať týchto chlapci preč v rovnakom čase. 748 00:37:06,600 --> 00:37:08,260 Tak idem na to, a ja som bude pretekať tu a ja som 749 00:37:08,260 --> 00:37:09,650 robiť to znova. 750 00:37:09,650 --> 00:37:14,030 >> A urobme to tak, že si Môžete vidieť oba. 751 00:37:14,030 --> 00:37:20,250 To je jeden tlačený hej, a že jeden tlačený hej celú cestu na - 752 00:37:20,250 --> 00:37:22,550 poďme robiť tento experiment znova. 753 00:37:22,550 --> 00:37:25,100 V skutočnosti, poďme použiť trik, či je to v poriadku. 754 00:37:25,100 --> 00:37:30,520 >> Takže budem používať shell vec, ktorá mi umožňuje v podstate spustiť dve kópie 755 00:37:30,520 --> 00:37:32,630 tohto programu paralelne. 756 00:37:32,630 --> 00:37:36,070 Takže to bude bežať prvý program a druhý program paralelne. 757 00:37:36,070 --> 00:37:39,060 Takže teraz, keď som stlačte klávesu Enter, bude to aby táto žiadosť do značnej miery 758 00:37:39,060 --> 00:37:40,570 okamžite v rovnakom čase. 759 00:37:40,570 --> 00:37:42,620 Takže poďme to dať šancu. 760 00:37:42,620 --> 00:37:44,950 >> Takže teraz Všimnite si, že hovorí, že dva procesy. 761 00:37:44,950 --> 00:37:50,630 A ak ste zvedaví, že 27,000 číslo je v podstate proces ID. 762 00:37:50,630 --> 00:37:52,940 A potom všimnete, že tlačené hej v rovnakom čase. 763 00:37:52,940 --> 00:37:56,820 Bolo to, ako by sme museli čakať päť sekúnd pre jednu a potom po tom, 764 00:37:56,820 --> 00:37:59,640 päť sekúnd neskôr sa na druhej. 765 00:37:59,640 --> 00:38:03,300 Tak to je druh, v niektorých ohľadoch, je to naozaj dôkaz, ale je to 766 00:38:03,300 --> 00:38:07,390 intuitívne dôkazy o tom, že to nie je len ako čakať päť sekúnd a blokovanie 767 00:38:07,390 --> 00:38:08,960 celý závit. 768 00:38:08,960 --> 00:38:10,720 OK v pohode. 769 00:38:10,720 --> 00:38:17,850 >> Takže Aaron spýtal skôr, že bolo dobre, čo keď to niečo urobiť - 770 00:38:17,850 --> 00:38:18,735 Jo? 771 00:38:18,735 --> 00:38:19,051 >> DIVÁKOV: Počkajte. 772 00:38:19,051 --> 00:38:21,585 Ako sa to líši od printf vyrovnávacej pamäti, aj keď? 773 00:38:21,585 --> 00:38:23,010 Nie je to automaticky robiť, že? 774 00:38:23,010 --> 00:38:25,390 Prečo sa musíme starať o to? 775 00:38:25,390 --> 00:38:26,555 >> KEVIN SCHMID: Oh, mohol by si hovoria, že ešte raz? 776 00:38:26,555 --> 00:38:29,510 >> DIVÁKOV: Nemá rád printf vyrovnávacej pamäti robiť presne to isté? 777 00:38:29,510 --> 00:38:31,280 >> KEVIN SCHMID: printf vyrovnávacia pamäť? 778 00:38:31,280 --> 00:38:32,753 >> DIVÁKOV: Jo. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 Nebol v jednom z kvízov, ktoré boli hovorí o tom, ako, ak kliknete pravým printf 781 00:38:40,609 --> 00:38:42,899 niečo, a potom si to pauza jeden druhej, a potom máte to slučku desať 782 00:38:42,899 --> 00:38:46,530 časy, bude to čakať desať sekúnd a potom printf všetko dohromady? 783 00:38:46,530 --> 00:38:47,460 >> KEVIN SCHMID: Oh, OK. 784 00:38:47,460 --> 00:38:49,170 >> DIVÁKOV: Je to to isté vec, potom v tomto prípade? 785 00:38:49,170 --> 00:38:52,630 >> KEVIN SCHMID: Takže otázka bola v podstate v jednej z bývalých kvízov 786 00:38:52,630 --> 00:38:57,200 alebo tak niečo, tam bola otázka, ktorá v podstate, ak hovoríte, tlačové F 10 787 00:38:57,200 --> 00:39:01,490 vecí naraz a potom spal ako v proces tlače z tých, 788 00:39:01,490 --> 00:39:04,850 na konci nejakého dôvodu, by to len výpis tých, všetci von na obrazovke. 789 00:39:04,850 --> 00:39:06,740 Takže tam to celkom dvoch rôznych pojmy tu. 790 00:39:06,740 --> 00:39:10,400 >> Takže myslím, že jedna vec je, že v tomto prípad, máme čo do činenia s dvoma rôznymi 791 00:39:10,400 --> 00:39:13,510 druh ľudí pýtať na serveri veci, v rovnakom čase. 792 00:39:13,510 --> 00:39:17,455 A dôvod, prečo printf druh čaká takhle a vypíše to všetko 793 00:39:17,455 --> 00:39:21,760 zrazu sa viac týka ako printf druh - 794 00:39:21,760 --> 00:39:25,100 Spôsob, akým je v skutočnosti printf vykonaný, je to v podstate má 795 00:39:25,100 --> 00:39:28,850 hovoriť s operačným systémom písať že veci na konzole. 796 00:39:28,850 --> 00:39:33,460 Takže to nechce robiť všetko veci okamžite, keď hovoríte printf 797 00:39:33,460 --> 00:39:36,260 nejaký reťazec, pretože to by mohlo predražiť, ak má 798 00:39:36,260 --> 00:39:37,340 to, že zakaždým. 799 00:39:37,340 --> 00:39:41,530 >> Takže ak ste to printf hej, program nemusí v skutočnosti tlači, že 800 00:39:41,530 --> 00:39:43,040 bezprostredne na konzolu. 801 00:39:43,040 --> 00:39:46,080 Mohlo by sa povedať, OK, napísal som to. 802 00:39:46,080 --> 00:39:49,570 A potom trochu čakať na vás, aby je to trochu viac, než v skutočnosti 803 00:39:49,570 --> 00:39:51,380 písať to do konzoly. 804 00:39:51,380 --> 00:39:54,040 >> Takže dôvod, prečo tomu tak bolo - 805 00:39:54,040 --> 00:39:56,450 a je to celkom nesúvisí k spánku - 806 00:39:56,450 --> 00:40:00,060 je, že spánok bol trochu len injekčne preukázať tam 807 00:40:00,060 --> 00:40:02,480 Skutočnosť, že sa nepíše to synchrónne. 808 00:40:02,480 --> 00:40:06,210 Ale dôvod, prečo to je len výkon, takže nemusíte 809 00:40:06,210 --> 00:40:08,920 robiť, že veľa kontaktov na operačný systém. 810 00:40:08,920 --> 00:40:12,300 >> Ale tu, čo sme naozaj snažia robiť s týmto spánku vec je jednoducho ukázať 811 00:40:12,300 --> 00:40:17,730 že keď máme dvoch ľudí návšteve Táto webová stránka, že to nebude dať 812 00:40:17,730 --> 00:40:22,310 je v riadku, kde je to chystá povedať, Musím vám pomohol, a potom, keď som 813 00:40:22,310 --> 00:40:25,350 úplne dokončená vám pomôže po nich päť sekúnd, potom budem 814 00:40:25,350 --> 00:40:26,750 presuniete na ďalšie osoby. 815 00:40:26,750 --> 00:40:29,515 Takže požiadavka prvého človeka nie je priviazať, že slučka pre organizovanie akcií, 816 00:40:29,515 --> 00:40:31,610 ak to dáva zmysel. 817 00:40:31,610 --> 00:40:34,980 >> Ale tu je v skutočnosti príkladom niečo, čo nadviaže 818 00:40:34,980 --> 00:40:36,090 do slučky udalostí. 819 00:40:36,090 --> 00:40:39,130 Tak tu je to hrozný funkciu výpočet n-té Fibonacciho. 820 00:40:39,130 --> 00:40:43,510 Je to doslova horšie spôsob, ako môžete výpočet n-té Fibonacciho čísla. 821 00:40:43,510 --> 00:40:48,480 A to je vlastne len na vedomie kde to prišlo z, 822 00:40:48,480 --> 00:40:49,330 je to vlastne - 823 00:40:49,330 --> 00:40:53,230 Myslím, môžete skúsiť ísť nájsť - ale tam to ako veľmi zdĺhavé blog 824 00:40:53,230 --> 00:40:54,130 príspevok, ktorý niekto napísal. 825 00:40:54,130 --> 00:40:55,660 Je to ako jedna z tých Reddit vecí. 826 00:40:55,660 --> 00:40:59,650 Ale niekto kritizoval Node.js, a oni používali to ako príklad. 827 00:40:59,650 --> 00:41:03,700 Tak nejako som chcel len ukázať vám dva rôzne pohľady len preto, aby 828 00:41:03,700 --> 00:41:07,320 všeobecné chápanie pojmov Za týmito dvoma vecami. 829 00:41:07,320 --> 00:41:13,050 >> Ale to je zvolená len ako hrozné, strašne neefektívne výpočtovo 830 00:41:13,050 --> 00:41:15,940 Intenzívny spôsob, ako vypočítať nth Fibonacci číslo. 831 00:41:15,940 --> 00:41:21,180 Takže len ako vedľajší poznámku, prečo je je to hrozné, ako v jednej ceste? 832 00:41:21,180 --> 00:41:23,210 Jo? 833 00:41:23,210 --> 00:41:25,130 >> DIVÁKOV: Povedzme, že začnete sa s 1000. 834 00:41:25,130 --> 00:41:27,050 1000 sa delí na 999 a 998. 835 00:41:27,050 --> 00:41:28,970 Každý to sa rozdelí na dve veci. 836 00:41:28,970 --> 00:41:30,890 Každý to sa rozdelí na dve veci. 837 00:41:30,890 --> 00:41:31,355 >> KEVIN SCHMID: Správne. 838 00:41:31,355 --> 00:41:32,400 >> DIVÁKOV: Celú cestu dole. 839 00:41:32,400 --> 00:41:32,840 >> KEVIN SCHMID: Presne tak. 840 00:41:32,840 --> 00:41:37,330 Takže len opakovať pre kameru, keď som volanie fib na ako 1000 alebo tak niečo 841 00:41:37,330 --> 00:41:41,810 rovnako ako to, že je to samozrejme nie menej ako alebo rovné jednej, takže budem 842 00:41:41,810 --> 00:41:46,040 prejsť na tento prípad iný, a potom idem volanie fib 999 a fib 998. 843 00:41:46,040 --> 00:41:50,290 A potom skoro všetko práce, ktorá fib 999 robí, je 844 00:41:50,290 --> 00:41:52,950 druh na tejto úrovni. 845 00:41:52,950 --> 00:41:55,620 Ak sa vydáte dole, je to ešte redundantné ako to, ale ak ste práve 846 00:41:55,620 --> 00:42:01,390 myslíte, že výpočtovej fib 998 dostane nám celkom blízko fib 999. 847 00:42:01,390 --> 00:42:05,860 Takže by sme mali byť naozaj trochu viac chytrý o tom, ako sme trochu znova 848 00:42:05,860 --> 00:42:07,580 ty, ale my nie sme znovupoužitie tieto veci vôbec. 849 00:42:07,580 --> 00:42:11,860 Takže si viete predstaviť to obrovské, obrovský strom, ktorý je jednoducho hrozné. 850 00:42:11,860 --> 00:42:12,940 >> Ale tak ako tak, v poriadku. 851 00:42:12,940 --> 00:42:14,040 Tak to bola lož. 852 00:42:14,040 --> 00:42:15,530 Je to len chvíľu trvá, než spustiť. 853 00:42:15,530 --> 00:42:16,510 Jo? 854 00:42:16,510 --> 00:42:17,760 >> DIVÁKOV: [nepočuteľné]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> KEVIN SCHMID: Oh, mohol by si zopakovať otázku? 857 00:42:22,481 --> 00:42:23,731 >> DIVÁKOV: [nepočuteľné]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> KEVIN SCHMID: Aha, takže to je len kód že to bude trochu na 860 00:42:33,990 --> 00:42:34,850 na strane servera. 861 00:42:34,850 --> 00:42:38,100 Takže to nebude nájdená v prehliadači, alebo tak niečo. 862 00:42:38,100 --> 00:42:42,160 Je to v podstate to, čo máme, je, že keď užívateľ tu do značnej miery značky 863 00:42:42,160 --> 00:42:45,300 opäť ich žiadosť, keď sme sa trochu podať žiadosť, budeme nazývať 864 00:42:45,300 --> 00:42:47,040 táto funkcia na strane servera. 865 00:42:47,040 --> 00:42:50,480 A potom dostaneme výsledok späť od volanie tejto funkcie. 866 00:42:50,480 --> 00:42:52,460 A potom sme si len vytlačiť je pre užívateľa. 867 00:42:52,460 --> 00:42:54,580 Takže užívateľ nie je naozaj riešiť Pomocou tejto funkcie príliš. 868 00:42:54,580 --> 00:42:57,270 >> Bola to otázka? 869 00:42:57,270 --> 00:42:58,470 Má to zmysel? 870 00:42:58,470 --> 00:42:58,810 OK. 871 00:42:58,810 --> 00:43:00,930 V pohode. 872 00:43:00,930 --> 00:43:04,240 >> Takže znovu, čo robíme celú tú res.writeHead vec, kde sme vytlačiť 873 00:43:04,240 --> 00:43:05,150 hlavičky. 874 00:43:05,150 --> 00:43:09,730 A potom som sa ukončiť reakciu tým, že robí magické číslo je fib 45. 875 00:43:09,730 --> 00:43:12,100 Takže poďme stačí spustiť tento server. 876 00:43:12,100 --> 00:43:15,190 Takže budem robiť uzla fib.js. 877 00:43:15,190 --> 00:43:17,340 Takže teraz moja fib je spustený server. 878 00:43:17,340 --> 00:43:21,790 >> A potom tu, idem k tomu jeden z nich. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 Tak som len chcel povedať, Curl. 881 00:43:24,960 --> 00:43:32,226 Takže to bude chvíľu trvať, ale dúfajme, že čoskoro skončí a 882 00:43:32,226 --> 00:43:35,660 to bude tlačiť, že 45. Fibonacci číslo. 883 00:43:35,660 --> 00:43:36,910 >> DIVÁKOV: [nepočuteľné]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> KEVIN SCHMID: Malo by si urobil docela čoskoro. 886 00:43:42,050 --> 00:43:43,780 Tak to by malo trvať päť-šestsekunda. 887 00:43:43,780 --> 00:43:48,570 Ja neviem, to je len V8 je veľmi rýchlo, ale v každom prípade, to je 888 00:43:48,570 --> 00:43:52,700 veľmi krátky príklad a zámerne nevkusný z non-triviálne 889 00:43:52,700 --> 00:43:54,200 výpočet. 890 00:43:54,200 --> 00:43:56,700 Takže po nejakej dobe, to si to. 891 00:43:56,700 --> 00:44:02,130 >> Ale teraz, čo keď to urobím, že rovnaký druh experiment ako predtým, kedy som sa urobiť 892 00:44:02,130 --> 00:44:04,010 dve žiadosti na rovnakú dobu? 893 00:44:04,010 --> 00:44:06,990 Tak tu idem do Curl na že adresa, a idem 894 00:44:06,990 --> 00:44:08,260 urobiť ďalšie Curl. 895 00:44:08,260 --> 00:44:12,070 A pamätajte si, keď sme robili to pre spať servera, keď sme v podstate mali to 896 00:44:12,070 --> 00:44:15,320 po piatich sekundách, sa celkom veľa ako sa vrátil hneď 897 00:44:15,320 --> 00:44:16,380 približne v rovnakom čase. 898 00:44:16,380 --> 00:44:18,650 Takže to nebolo osobitne zviazaný. 899 00:44:18,650 --> 00:44:20,290 >> Ale skúsme to teraz. 900 00:44:20,290 --> 00:44:22,370 OK, takže sme dostali naše dva procesy. 901 00:44:22,370 --> 00:44:24,210 Nezabudnite, tie sú procesné ID. 902 00:44:24,210 --> 00:44:25,900 To bude trochu trápne, keď sa zastaví. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Takže poďme zostať tu a čakať. 905 00:44:35,360 --> 00:44:37,090 >> Takže jeden z nich by mala prísť späť potom, čo ako - 906 00:44:37,090 --> 00:44:39,190 OK, tak jeden sa vrátil. 907 00:44:39,190 --> 00:44:43,570 Ale prečo nie druhý jeden sa vrátil ešte nie? 908 00:44:43,570 --> 00:44:44,389 Jo? 909 00:44:44,389 --> 00:44:49,280 >> Divákov: Server nemôže nič robiť zatiaľ čo to je výpočtovej že veľký počet. 910 00:44:49,280 --> 00:44:51,620 >> KEVIN SCHMID: Správne. 911 00:44:51,620 --> 00:44:55,395 Takže odpoveď bola len, že server naozaj nemôže nič robiť, zatiaľ čo 912 00:44:55,395 --> 00:44:57,460 je to výpočtovej toto číslo Fibonacci. 913 00:44:57,460 --> 00:44:59,360 Takže teraz som zrovna moje dve veci späť. 914 00:44:59,360 --> 00:45:03,210 Ale myslím, že len premýšľať o kódexe trochu, ako to funguje 915 00:45:03,210 --> 00:45:05,030 a všetko. 916 00:45:05,030 --> 00:45:11,750 >> Takže táto funkcia tu je kód, ktorý Povedal som tento server spustiť, keď to 917 00:45:11,750 --> 00:45:14,100 prijíma nové prichádzajúce požiadavku. 918 00:45:14,100 --> 00:45:17,940 Takže to len tak prejsť tento Celý kód, a potom to pôjde 919 00:45:17,940 --> 00:45:21,120 späť do slučky udalostí a potom pokračovať kontrola novej udalosti. 920 00:45:21,120 --> 00:45:23,670 Takže v podstate to, čo sme sa deje je server 921 00:45:23,670 --> 00:45:25,080 počúvanie nových vecí. 922 00:45:25,080 --> 00:45:28,070 Prvá osoba žiada o to, čo 45. 923 00:45:28,070 --> 00:45:30,490 Prevádzkujeme tento kód do jeho výpočtu. 924 00:45:30,490 --> 00:45:33,420 Tento kód má zhruba päť šesť sekúnd bežať. 925 00:45:33,420 --> 00:45:36,990 Potom sme sa vrátiť do slučky udalostí a skontrolujte, či nové požiadavky. 926 00:45:36,990 --> 00:45:42,700 >> Tak to je príklad toho, ako, ak sú veci, ktoré sú tak-zvané výpočtovej 927 00:45:42,700 --> 00:45:48,140 viazaná, alebo použiť veľa výpočtových, nie je moc, ale ako sú 928 00:45:48,140 --> 00:45:50,260 výpočtovo náročné - 929 00:45:50,260 --> 00:45:54,080 Myslím, že jedna vec je povedať, o tom je , Že táto funkcia robí úplne, 930 00:45:54,080 --> 00:45:56,310 z väčšej časti, pekný užitočnej práce v poriadku. 931 00:45:56,310 --> 00:45:59,970 Po celú dobu, že spätné volanie funkcie bežal, to bolo celkom 932 00:45:59,970 --> 00:46:03,670 veľa trávia väčšinu svojho času len výpočtovej číslo, ktoré nth Fibonacci. 933 00:46:03,670 --> 00:46:05,930 >> Ale my sme mali len jedno vlákno riešiť. 934 00:46:05,930 --> 00:46:10,270 V modeli Apache, keď sa dvaja ľudia podal žiadosť, aby si fib 45, sa 935 00:46:10,270 --> 00:46:11,610 by mal dve rôzne závity. 936 00:46:11,610 --> 00:46:15,060 A potom úlohou operačného systému by bolo, alebo užívateľskej úrovni 937 00:46:15,060 --> 00:46:18,660 Kód, ktorý spravuje vlákna, by si bolo plátok, ktorý sa na 938 00:46:18,660 --> 00:46:23,060 CPU, alebo dokonca, ak ste mali viac procesorov, distribuovať rovnomerne na CPU 939 00:46:23,060 --> 00:46:26,130 tak, aby boli oba úprava zhruba v rovnakom čase. 940 00:46:26,130 --> 00:46:31,120 >> Takže len preto, aby vám ukázať, ako môžeme triediť z - a to nie je celkom ideálne 941 00:46:31,120 --> 00:46:34,280 riešenie, ale trochu o tom, ako môžeme aby sa sem vrátiť a robiť 942 00:46:34,280 --> 00:46:35,880 trochu lepšie. 943 00:46:35,880 --> 00:46:41,540 Takže to, čo som tu, je program s názvom Fib C. A to v podstate používa 944 00:46:41,540 --> 00:46:45,690 ďalší z modulov uzla s názvom Dieťa proces modul. 945 00:46:45,690 --> 00:46:49,210 Tak som súčasťou, že v pravom hornom druhu ze ako by som to libru patrí 946 00:46:49,210 --> 00:46:51,230 dieťa process.h alebo tak niečo. 947 00:46:51,230 --> 00:46:56,210 Teraz mám prístup k tejto CP premennej ktorý má všetky svoje funkcie. 948 00:46:56,210 --> 00:47:01,810 >> Takže teraz, čo robím v tejto odpovedi Psovod je Bežím tento program 949 00:47:01,810 --> 00:47:04,100 bodka lomítko fib 45. 950 00:47:04,100 --> 00:47:06,820 Takže to, čo som urobil - a ja som jednoducho ísť vystúpiť z tohto programu pre 951 00:47:06,820 --> 00:47:07,620 trochu - 952 00:47:07,620 --> 00:47:11,060 Je Napísal som program C, ktorý v podstate počíta 953 00:47:11,060 --> 00:47:12,630 nth Fibonacci číslo. 954 00:47:12,630 --> 00:47:15,960 Tak tu je to len program, čo som napísal v C, ktorý počíta to. 955 00:47:15,960 --> 00:47:19,040 Môžem skompilovať, a môžem bežať že na príkazovom riadku. 956 00:47:19,040 --> 00:47:22,150 A to bude pre výpočet Číslo 45. Fibonacci. 957 00:47:22,150 --> 00:47:24,510 >> Takže všimnúť, to jednoducho trvá skoro tak dlho. 958 00:47:24,510 --> 00:47:28,240 Asi som mohol použiť pomlčku 03 k optimalizovať, alebo niečo také, 959 00:47:28,240 --> 00:47:31,050 ale ja to urobil ako pravidelný Nastavenie kompilátora. 960 00:47:31,050 --> 00:47:33,260 A vytlačí ju. 961 00:47:33,260 --> 00:47:36,830 >> Ale teraz, čo mám trochu robiť? 962 00:47:36,830 --> 00:47:39,800 Oh sorry, zlý súbor. 963 00:47:39,800 --> 00:47:42,800 Tak som sa robiť rovnaké veci s záhlavie ako predtým. 964 00:47:42,800 --> 00:47:45,780 Potom som to urobiť cp.exec. 965 00:47:45,780 --> 00:47:49,460 Tak čo to bude robiť, je to chystá spustiť tento program. 966 00:47:49,460 --> 00:47:51,960 Ale spôsob, akým to funguje tak, že že to nebude čakať na 967 00:47:51,960 --> 00:47:53,400 tento program až do konca. 968 00:47:53,400 --> 00:47:56,000 Je to v podstate len hovorí, spustiť tento program. 969 00:47:56,000 --> 00:47:58,700 Takže v podstate napíšte to do príkazového riadku druh. 970 00:47:58,700 --> 00:48:02,350 >> A potom, keď budete hotoví s to, spustite túto funkciu. 971 00:48:02,350 --> 00:48:04,800 Takže teraz sme trochu si to Celá obnovená vec 972 00:48:04,800 --> 00:48:06,750 ako by sme to čakali. 973 00:48:06,750 --> 00:48:08,530 Znamená to, že trochu zmysel? 974 00:48:08,530 --> 00:48:08,990 Jo? 975 00:48:08,990 --> 00:48:11,060 >> DIVÁKOV: [nepočuteľné]? 976 00:48:11,060 --> 00:48:13,610 >> KEVIN SCHMID: Tak to bude skutočne otvoriť nový proces, ako to urobiť. 977 00:48:13,610 --> 00:48:19,310 Takže je to vlastne v niektorých ohľadoch, zlo, nie veľmi zlé, ale je to 978 00:48:19,310 --> 00:48:22,990 dôležité povedať, že je to druh návrat do, na jednej strane, Apache 979 00:48:22,990 --> 00:48:26,450 model, kedy budeme robiť závity a procesy Pre každú žiadosť alebo 980 00:48:26,450 --> 00:48:29,280 procesy pre každú požiadavku. 981 00:48:29,280 --> 00:48:32,090 Tak to je celkom podobný s tým, čo robí Apache. 982 00:48:32,090 --> 00:48:35,110 V niektorých prípadoch, bude to stačí použiť nový závit, ktorý je trochu viac svetla 983 00:48:35,110 --> 00:48:39,040 hmotnosť ako proces, ale Apache mohol skončiť vetvenia nový proces 984 00:48:39,040 --> 00:48:43,370 ktorý je tak trochu o tom, čo robíme tu implicitne tým, že robí bodka lomítko fib 45. 985 00:48:43,370 --> 00:48:48,690 >> A potom v tom prípade, sme trochu vzniknú rovnaké náklady procesov. 986 00:48:48,690 --> 00:48:50,710 Tak to je len jedna vec, ktorú môžete urobiť. 987 00:48:50,710 --> 00:48:52,600 Ale len preto, aby ukážte tento druh prevádzky. 988 00:48:52,600 --> 00:48:57,120 A táto diskusia je naozaj len zameraná na prezentovať tieto druhy programov 989 00:48:57,120 --> 00:49:00,710 spôsob, ako ukázať rôzne pohľady na ako navrhnúť servery, ako je to. 990 00:49:00,710 --> 00:49:08,300 Tak to beží, a potom teraz, keď to to znovu, mám dve ID procesov. 991 00:49:08,300 --> 00:49:10,320 >> Poďme si o tom pohovoriť veci, poukázať. 992 00:49:10,320 --> 00:49:11,980 Tak zistíte, že sú postupne. 993 00:49:11,980 --> 00:49:12,700 To je v pohode. 994 00:49:12,700 --> 00:49:15,140 Vzhľadom k tomu, že sa pred 27122. 995 00:49:15,140 --> 00:49:18,580 Ale Oznámenia teraz sa vrátili zhruba v rovnakom čase. 996 00:49:18,580 --> 00:49:23,960 >> A teraz, dobrá otázka sa opýtať prečo bolo to, že prípad je, ktorého úlohou 997 00:49:23,960 --> 00:49:27,590 to bolo teraz nejako, aby sa tieto veci druh hrať fér medzi sebou 998 00:49:27,590 --> 00:49:31,350 iné, tieto dva prípady bodka lomítko fib 45, že som bežal 999 00:49:31,350 --> 00:49:32,880 alebo že RAN uzol? 1000 00:49:32,880 --> 00:49:36,940 Kto trochu je to fér, že obaja sa druh dané behu času? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> DIVÁKOV: [nepočuteľné]. 1003 00:49:44,220 --> 00:49:44,620 >> KEVIN SCHMID: Jo. 1004 00:49:44,620 --> 00:49:49,740 Takže v podstate, keď som si dot lomítko lož 45, alebo niečo také, teraz je to 1005 00:49:49,740 --> 00:49:53,750 druh do operačného systému zvládnuť runtime týchto programov. 1006 00:49:53,750 --> 00:49:56,920 A teraz sa im môže naplánovať na rôznych CPU, alebo to 1007 00:49:56,920 --> 00:49:58,330 je možné naplánovať. 1008 00:49:58,330 --> 00:50:01,870 Je možné krájať až čas, ktorú človek CPU dostane to, alebo že sa 1009 00:50:01,870 --> 00:50:03,330 bežať na jednom procesore. 1010 00:50:03,330 --> 00:50:05,620 Tak to je myšlienka, že. 1011 00:50:05,620 --> 00:50:07,220 Znamená to, že zmysel pre každého? 1012 00:50:07,220 --> 00:50:10,950 Takže teraz Uzol nie je naozaj hrať časť v rozdeľovaní týchto úloh. 1013 00:50:10,950 --> 00:50:12,200 OK. 1014 00:50:12,200 --> 00:50:14,050 1015 00:50:14,050 --> 00:50:17,840 >> Tak to je skoro to na príkladoch. 1016 00:50:17,840 --> 00:50:23,370 Len som chcel ukázať ešte jednu vec pretože veľa z toho bola doteraz 1017 00:50:23,370 --> 00:50:27,350 nie je úplne Super praktické v niektorých prípadoch. 1018 00:50:27,350 --> 00:50:30,970 Viem si predstaviť, sa vracia domov po tom, čo táto hovoriť a niečo a hovoriť ako, 1019 00:50:30,970 --> 00:50:35,710 tak nejako som sa dostal z tej reči, že Môžem urobiť Fibonacciho server 1020 00:50:35,710 --> 00:50:37,360 môj konečný projekt. 1021 00:50:37,360 --> 00:50:40,770 Tak tu je to len trochu jeden príklad že snáď bude - 1022 00:50:40,770 --> 00:50:44,620 Možno nie, ale možno - trochu viac druh relevantné záverečných prác a 1023 00:50:44,620 --> 00:50:46,440 myslieť dopredu na také veci. 1024 00:50:46,440 --> 00:50:48,870 >> Tak toto je chat.js. 1025 00:50:48,870 --> 00:50:52,290 Takže je to niečo ako nejaký vzorka Server side kód, ktorý môžete použiť na 1026 00:50:52,290 --> 00:50:55,700 nastaviť malú chatu servera, ako je ste mohli vidieť na 1027 00:50:55,700 --> 00:50:56,630 Facebook Chat alebo čokoľvek iného. 1028 00:50:56,630 --> 00:50:59,990 Takže ja nehovorím, že je to ako Facebook Chat, ale je to druh 1029 00:50:59,990 --> 00:51:06,230 ako dobrý - možno nie je dobré, ale možno dobrý - východiskový bod pre chat 1030 00:51:06,230 --> 00:51:08,560 server pre vaše webové stránky pre finálny projekt. 1031 00:51:08,560 --> 00:51:11,040 Tak sa poďme pozrieť na to, čo to robí. 1032 00:51:11,040 --> 00:51:15,500 >> Takže sa dostávame túto špeciálnu vec v hornej časti, to var SIO 1033 00:51:15,500 --> 00:51:17,050 rovná vyžadujú Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Takže to je ďalšia vec, že ​​to nie je vlastne prísť zviazaný s 1035 00:51:20,280 --> 00:51:22,300 Uzol, ale môžete ho nainštalovať. 1036 00:51:22,300 --> 00:51:23,480 Je to modul Node. 1037 00:51:23,480 --> 00:51:25,670 Takže je to len ako nejaký rozšírenie uzla. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO je v skutočnosti naozaj celkom fajn. 1039 00:51:29,220 --> 00:51:32,550 Je to abstrakcia, ktorá v podstate to, čo to znamená je, že vám umožní 1040 00:51:32,550 --> 00:51:35,770 mať tento prúd komunikácie medzi web 1041 00:51:35,770 --> 00:51:39,430 prehliadač a webový server. 1042 00:51:39,430 --> 00:51:45,250 Takže z veľkej časti doteraz sme mali Tieto veľmi rýchle sekundu alebo dve 1043 00:51:45,250 --> 00:51:48,790 druhá komunikácia medzi web prehliadač a webový server. 1044 00:51:48,790 --> 00:51:53,310 Takže je to v podstate ísť na google.com, get veci, zašlite ho späť, a potom 1045 00:51:53,310 --> 00:51:53,770 sme hotoví. 1046 00:51:53,770 --> 00:51:56,560 My nikdy hovoriť, kým užívateľ zadá v niečom inom. 1047 00:51:56,560 --> 00:52:01,090 >> Ale čo Socket.IO a podobné druhy veci - a SocketIO je vlastne jedným 1048 00:52:01,090 --> 00:52:03,940 z vecí, ktorá je postavená na ako WebSocket, ktorý je akýmsi k dispozícii 1049 00:52:03,940 --> 00:52:06,440 ako súčasť HTML5 - 1050 00:52:06,440 --> 00:52:09,620 ktoré vám umožní mať tento pokračujúci dialóg. 1051 00:52:09,620 --> 00:52:13,990 A to je veľmi užitočné v chate servera také veci, pretože to je 1052 00:52:13,990 --> 00:52:17,390 niečo ako pokračujúceho dialógu niektoré spôsoby, pretože ak ste chatovanie 1053 00:52:17,390 --> 00:52:21,540 s niekým, môžete teraz stačí poslať Správa sa potrubie, a potom 1054 00:52:21,540 --> 00:52:23,940 server môže poslať správu dole potrubia na inú osobu, ktorú ste 1055 00:52:23,940 --> 00:52:24,520 chatovanie s 1056 00:52:24,520 --> 00:52:26,903 A potom môžete mať tento vymieňať takto. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Tak to je niečo, čo SocketIO je dobré pre. 1059 00:52:32,850 --> 00:52:38,400 Dôvod, že SocketIO používa WebSockets pretože jedna vec je, že v 1060 00:52:38,400 --> 00:52:43,980 Okrem jednoducho staré WebSockets, to tiež robí nejaké triky v podstate 1061 00:52:43,980 --> 00:52:45,610 aby bolo kompatibilné so všetkými prehliadačmi. 1062 00:52:45,610 --> 00:52:50,040 Takže prehliadače ako Internet Explorer bohužiaľ nepodporujú WebSockets 1063 00:52:50,040 --> 00:52:50,810 hneď po vybalení z krabice. 1064 00:52:50,810 --> 00:52:55,290 Tak to používa nejaký iný druh chladenie čistý veci s Adobe Flash, ktoré umožnia 1065 00:52:55,290 --> 00:52:57,170 budete mať prierez podporu prehliadača. 1066 00:52:57,170 --> 00:52:58,800 Tak to je naozaj užitočné. 1067 00:52:58,800 --> 00:53:02,440 >> A vlastne, viem, že som trochu beh na čas tu, ale CS50 1068 00:53:02,440 --> 00:53:08,490 Diskutujte, už ste niekedy videli niečo ako, ja neviem, prázdne, a tak je 1069 00:53:08,490 --> 00:53:11,030 odpovede na tento príspevok, alebo tak niečo ako to, že funkcia? 1070 00:53:11,030 --> 00:53:12,250 To je SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Takže keď niekto začne písať v roku diskutovať pole, aby odpoveď alebo 1072 00:53:15,580 --> 00:53:20,040 niečo, váš prehliadač nepodporuje to, čo je zavolal SocketIO vyžaruje určitý druh 1073 00:53:20,040 --> 00:53:22,660 udalosť, ktorá hovorí, že niekto je odpovede na tento príspevok. 1074 00:53:22,660 --> 00:53:26,110 >> Potom servera hovorí, OK, čo mám robiť? 1075 00:53:26,110 --> 00:53:29,270 Tak teraz musím povedať, tie ostatné chlapcov ktorí sú na CS50 Diskutujte hľadáte 1076 00:53:29,270 --> 00:53:31,170 u tohto príspevku, že niekto odpovedal. 1077 00:53:31,170 --> 00:53:34,190 Tak to je niečo, čo SocketIO je dobrý, tento pokračujúci druhu 1078 00:53:34,190 --> 00:53:35,930 prúd dialógu. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Takže to, čo som tu - a my sme len bude ignorovať pole pripojenie 1081 00:53:40,060 --> 00:53:41,390 pre trochu - 1082 00:53:41,390 --> 00:53:43,080 čo mám robiť, je mi to vypočuť znova. 1083 00:53:43,080 --> 00:53:46,880 Tak to je len spôsob, ako v Socket.IO sa hovorí poďme počúvať na tomto porte. 1084 00:53:46,880 --> 00:53:50,060 A potom som si to na pripojenie. 1085 00:53:50,060 --> 00:53:53,360 Tak to je v podstate len Socket IO je spôsob, ako povedať, keď sme dostali 1086 00:53:53,360 --> 00:53:55,840 pripojenie, chcem ťa Na spustenie tohto kódu. 1087 00:53:55,840 --> 00:53:59,870 >> A všimnite si, že namiesto toho, aby rec a res prešiel tam mám Socket. 1088 00:53:59,870 --> 00:54:03,260 A to Socket myšlienka je v podstate to vec, ktorú môžete písať a čítať 1089 00:54:03,260 --> 00:54:05,750 z toho má užívateľa Správy možná. 1090 00:54:05,750 --> 00:54:10,700 A správy, ktoré by ste poslať môže prejsť týmto Socket. 1091 00:54:10,700 --> 00:54:12,140 Má to zmysel? 1092 00:54:12,140 --> 00:54:14,490 Takže to je to pokračujúci vec. 1093 00:54:14,490 --> 00:54:17,820 >> Takže to, čo robím, je hovorím Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 A vydávať sa celkom veľa dva argumenty. 1095 00:54:20,330 --> 00:54:24,100 Prvý argument je reťazec len predstavuje typ 1096 00:54:24,100 --> 00:54:25,270 čo ste emisiami. 1097 00:54:25,270 --> 00:54:28,120 Takže v tomto prípade, som použitie Tento reťazec nová správa. 1098 00:54:28,120 --> 00:54:32,670 A to je len v podstate hovorí, že typ tejto veci, čo som 1099 00:54:32,670 --> 00:54:34,750 odoslanie, je nová správa. 1100 00:54:34,750 --> 00:54:38,460 Takže si môžete vypočuť na konkrétne typy Zánovné správy alebo čokoľvek 1101 00:54:38,460 --> 00:54:39,960 pomocou bodku. 1102 00:54:39,960 --> 00:54:44,570 >> Takže spojenie a užívateľ tam poslal, ak sa pozriete na to, kde hovoríme bodka na, 1103 00:54:44,570 --> 00:54:48,150 to sú ďalšie reťazce, ktoré predstavujú typy užívateľských správ. 1104 00:54:48,150 --> 00:54:52,060 Takže je to v podstate môžete mať tento emitovať jeden z týchto typov správ, a 1105 00:54:52,060 --> 00:54:55,520 potom niečo v reakcii na jeden z týchto typov správ 1106 00:54:55,520 --> 00:54:57,640 >> Takže som vyžarujúce túto novú správu. 1107 00:54:57,640 --> 00:55:00,540 Budeme ignorovať connections.push za sekundu. 1108 00:55:00,540 --> 00:55:03,360 Ale potom som si povedal, Socket.on používateľ odoslal. 1109 00:55:03,360 --> 00:55:07,540 Takže teraz je to trochu, ako keď užívateľ mi pošle správu, chcem 1110 00:55:07,540 --> 00:55:09,240 spustiť tento kód. 1111 00:55:09,240 --> 00:55:12,080 A všimnite si, že anonymné funkcie berie v tejto premennej 1112 00:55:12,080 --> 00:55:16,300 tzv dáta, ktorá je v podstate deje mať správy užívateľa. 1113 00:55:16,300 --> 00:55:20,700 >> Takže teraz poďme trochu hovoriť o pole pripojenia. 1114 00:55:20,700 --> 00:55:24,590 Tak toto je určený pre chat klienta kde v podstate každý je trochu v 1115 00:55:24,590 --> 00:55:25,950 rovnakej miestnosti. 1116 00:55:25,950 --> 00:55:29,640 Takže v podstate to, čo budeme potrebovať, aby asi je nejaká pole, ktoré v podstate 1117 00:55:29,640 --> 00:55:33,170 zastupuje všetkých občanov chatovanie v niektoré spôsoby, pokiaľ to dáva zmysel. 1118 00:55:33,170 --> 00:55:33,340 Je to tak? 1119 00:55:33,340 --> 00:55:37,190 Vzhľadom k tomu, že potrebujeme vedieť, kto tých chlapcov tak sme im môžu posielať správy 1120 00:55:37,190 --> 00:55:39,140 že ostatní ľudia posielajú k nám. 1121 00:55:39,140 --> 00:55:44,440 >> Takže to, čo tento kód robí, keď je užívateľ pošle správu - to je typ 1122 00:55:44,440 --> 00:55:45,300 udalosť - 1123 00:55:45,300 --> 00:55:47,120 budeme spustením tohto kódu. 1124 00:55:47,120 --> 00:55:51,240 A to, čo robíme, je, že sme prejsť tento pole, ktoré sme nazvali pripojenia. 1125 00:55:51,240 --> 00:55:54,390 A skoro pre každé pripojenie okrem toho, že je naša, to je 1126 00:55:54,390 --> 00:55:59,520 čo tento kód hovorí, zašleme nový Správa s touto správou pripojenou 1127 00:55:59,520 --> 00:56:01,210 informácie. 1128 00:56:01,210 --> 00:56:04,880 >> Takže ak si všimnete tu, čo som urobil, keď užívateľ skutočne je nový 1129 00:56:04,880 --> 00:56:08,560 Pripojenie je, že som pridal s Spôsob JavaScript.push, to je 1130 00:56:08,560 --> 00:56:12,100 v podstate len hovorím, ako pridať že Socket ako hodnota do 1131 00:56:12,100 --> 00:56:13,900 naše pripojenie poľa. 1132 00:56:13,900 --> 00:56:20,560 Takže teraz, keď tento kód spustí, bude to Poslať veci tým, najmä 1133 00:56:20,560 --> 00:56:22,020 pripojenie. 1134 00:56:22,020 --> 00:56:26,980 Takže to môže byť dobrým východiskovým bodom pre výrobu chatu servera 1135 00:56:26,980 --> 00:56:28,250 alebo niečo podobné. 1136 00:56:28,250 --> 00:56:33,315 >> A celkom fajn vec je, že kód, ktorý vidíte tu, ako na a 1137 00:56:33,315 --> 00:56:36,390 vysielať a tak podobne, že je rovnaký druh kódu JavaScript, ktorý by 1138 00:56:36,390 --> 00:56:39,260 písať v prehliadači komunikovať so serverom. 1139 00:56:39,260 --> 00:56:42,480 Takže to je dôvod, prečo SocketIO je druh elegantný a užitočné týmto spôsobom. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Jo a ešte jedna vec, ktorú naozaj rýchlo. 1142 00:56:49,250 --> 00:56:55,970 Tam bol konečný projekt CS50 v minulom roku že v podstate zavedený chat 1143 00:56:55,970 --> 00:56:57,840 server Node.js. 1144 00:56:57,840 --> 00:57:01,350 Myslím, že je to Harvardchats.org ale ja nie som - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 Nie som si istý, čo URL je, ale Môžem poslať, že sa neskôr. 1147 00:57:06,190 --> 00:57:09,260 Ale je to trochu vychladnúť, čo môžete robiť s Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Takže dúfam, že všeobecne, vy chlapci majú dobrý pocit z toho, čo Node.js je užitočný 1149 00:57:14,680 --> 00:57:17,870 a ako by ste mohli možno platiť do konečného projektu. 1150 00:57:17,870 --> 00:57:21,050 Budem rozosielať viac zdroje spolu s tým. 1151 00:57:21,050 --> 00:57:23,170 A ďakujem, že ste prišli. 1152 00:57:23,170 --> 00:57:23,610 Ďakujem. 1153 00:57:23,610 --> 00:57:27,168 >> [APPLAUSE]