1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:10,960 [Musik spiller] 3 00:00:10,960 --> 00:00:12,960 ROGER ZURAWICKI: Hej, mit navn er Roger Zurawicki, 4 00:00:12,960 --> 00:00:16,410 og jeg vil være der dækker det CS50 Meteor seminaret. 5 00:00:16,410 --> 00:00:21,520 Meteor er en ny ramme afsat til den nye form for web, 6 00:00:21,520 --> 00:00:25,220 ikke PHP gør anmodninger frem og tilbage art 7 00:00:25,220 --> 00:00:29,070 af web vi så i PHPP sættet, men de mere dynamiske JavaScript 8 00:00:29,070 --> 00:00:31,370 dele af nettet. 9 00:00:31,370 --> 00:00:36,260 Ting Meteor kan gøre omfatter også levende Opdatering 10 00:00:36,260 --> 00:00:42,380 og straks kommunikere mellem brugere af samme hjemmeside. 11 00:00:42,380 --> 00:00:46,420 >> Til dette seminar, har vi kode vært på min GitHub. 12 00:00:46,420 --> 00:00:49,690 Du kan gå til denne URL og hente den. 13 00:00:49,690 --> 00:00:53,085 Hvis du ved, hvordan man bruger Git, du kan klone arkivet. 14 00:00:53,085 --> 00:00:55,460 Hvis du ikke ved, hvordan man bruger Git eller har ikke brugt GitHub, 15 00:00:55,460 --> 00:00:57,030 det er helt fint. 16 00:00:57,030 --> 00:01:00,480 Jeg vil vise dig virkelig hurtigt hvordan vi kan gå til GitHub, 17 00:01:00,480 --> 00:01:03,604 og der er en mulighed for at downloade en zip lige der. 18 00:01:03,604 --> 00:01:06,770 Når du har downloadet denne mappe, du kan komme i gang med at spille med vores kode. 19 00:01:06,770 --> 00:01:10,200 20 00:01:10,200 --> 00:01:13,190 >> Mere information om Meteor kan findes på meteor.com. 21 00:01:13,190 --> 00:01:16,580 I seminaret mappe, jeg faktisk har nogle Meteor projekter, vi kan bruge. 22 00:01:16,580 --> 00:01:20,380 23 00:01:20,380 --> 00:01:26,400 En af de mapper, vi har i vores seminar projekt er todos app. 24 00:01:26,400 --> 00:01:28,780 Så hvis jeg går ind i det jeg, har Meteor installeret. 25 00:01:28,780 --> 00:01:35,690 Så for at køre det, jeg bare nødt til at skrive Meteor, og Meteor vil installere. 26 00:01:35,690 --> 00:01:38,310 Som du kan se, er vi nødt til at sikre, at vi installerede Meteor. 27 00:01:38,310 --> 00:01:40,562 Så jeg bare gå til køre den en gang til 28 00:01:40,562 --> 00:01:42,520 at sikre, at Meteor er installeret korrekt. 29 00:01:42,520 --> 00:01:46,370 30 00:01:46,370 --> 00:01:48,450 >> Mens jeg har Meteor installation, kan jeg vise dig 31 00:01:48,450 --> 00:01:53,760 nogle levende demoer af Meteor sites går live lige nu på internettet. 32 00:01:53,760 --> 00:01:57,990 Jeg har en demo af vores app. 33 00:01:57,990 --> 00:02:00,740 Du kan få adgang til den på følgende webadresse. 34 00:02:00,740 --> 00:02:06,350 Dette er det at gøre app, vi har i vores seminar bibliotek. 35 00:02:06,350 --> 00:02:09,940 Webadressen til dette er rozu-rabbit.meteor.com. 36 00:02:09,940 --> 00:02:14,782 Du vil se, at Meteor vil faktisk vært for dine Meteor projekter gratis. 37 00:02:14,782 --> 00:02:17,490 Og i slutningen af ​​seminaret, vil du være i stand til at gøre det så godt. 38 00:02:17,490 --> 00:02:20,550 39 00:02:20,550 --> 00:02:22,160 >> Dette er en opgaveliste app. 40 00:02:22,160 --> 00:02:27,740 Og du kan logge på, skal du oprette konti og tilføje opgaver. 41 00:02:27,740 --> 00:02:30,020 Du kan oprette en konto som så. 42 00:02:30,020 --> 00:02:33,050 43 00:02:33,050 --> 00:02:35,850 Og nu, når du har en konto, kan du tilføje opgaver. 44 00:02:35,850 --> 00:02:42,780 For eksempel er en af ​​de opgaver I muligvis gå hente mit vasketøj. 45 00:02:42,780 --> 00:02:45,160 Og hvis du er på dette site online, vil du 46 00:02:45,160 --> 00:02:49,790 faktisk se denne opgave på din computer i realtid. 47 00:02:49,790 --> 00:02:53,760 >> Jeg kan vise dig en hurtig demo dette ved at åbne Rozu-kanin 48 00:02:53,760 --> 00:02:56,700 i en anden fane med den samme webadresse. 49 00:02:56,700 --> 00:03:00,360 Og vi ser, at de samme data kommer op. 50 00:03:00,360 --> 00:03:02,240 Vi kan også køre det i en anden browser. 51 00:03:02,240 --> 00:03:03,420 Sig jeg køre det i Safari. 52 00:03:03,420 --> 00:03:04,720 På den måde, vi er ikke logget ind. 53 00:03:04,720 --> 00:03:07,750 54 00:03:07,750 --> 00:03:11,060 Så vi har den samme Meteor app, og når det indlæses, 55 00:03:11,060 --> 00:03:13,910 vi vil se de samme data vi gjorde i den første. 56 00:03:13,910 --> 00:03:16,710 Som du kan se, jeg er ikke logget ind her. 57 00:03:16,710 --> 00:03:20,000 Og når publikum kontrollerer data, den opdaterer på alle browsere 58 00:03:20,000 --> 00:03:20,910 samtidigt. 59 00:03:20,910 --> 00:03:23,740 Dette er en af ​​de virkelig smarte funktioner om Meteor. 60 00:03:23,740 --> 00:03:27,700 Med næsten ingen arbejde, du har en levende ajourføring app 61 00:03:27,700 --> 00:03:31,240 at ændringer på alle dine enheder på én gang. 62 00:03:31,240 --> 00:03:36,690 >> Hvis jeg markere afkrydsningsfeltet her i min opgaveliste, vil vi have, 63 00:03:36,690 --> 00:03:41,230 i min anden Chrome-browseren, elementet afkrydset. 64 00:03:41,230 --> 00:03:42,605 Og dette sker øjeblikkeligt. 65 00:03:42,605 --> 00:03:46,340 66 00:03:46,340 --> 00:03:47,280 Ok. 67 00:03:47,280 --> 00:03:52,730 Så det ser ud som Meteor Installationen er nu klar. 68 00:03:52,730 --> 00:03:57,000 Så lad os nu gå tilbage til todos app og køre dette lokalt. 69 00:03:57,000 --> 00:04:01,599 >> Hvis du har et Meteor projekt, kan du bare køre det med kommandoen Meteor. 70 00:04:01,599 --> 00:04:03,640 Når du gør dette, Meteor vil gøre nogle forberedelse 71 00:04:03,640 --> 00:04:06,120 for at sikre alle din kode er i skak. 72 00:04:06,120 --> 00:04:12,440 Og så det vil fortælle dig, at det Projektet er klar til at blive serveret. 73 00:04:12,440 --> 00:04:17,750 Du skal muligvis give din firewall, hvis din computer blokerer dig. 74 00:04:17,750 --> 00:04:22,440 >> Så hvad Meteor fortæller mig lige nu er, at på denne hjemmeside 75 00:04:22,440 --> 00:04:26,100 lokale til min computer, kan jeg se hvad dette Meteor projekt er. 76 00:04:26,100 --> 00:04:29,290 Bemærk, at lige nu, min app er ikke er tilgængelige til internettet. 77 00:04:29,290 --> 00:04:35,170 Vi dækker hvordan at bringe din Meteor app til et levende sted lidt senere. 78 00:04:35,170 --> 00:04:40,510 Så jeg bare at kopiere denne URL nu og gå ind i Google Chrome. 79 00:04:40,510 --> 00:04:42,600 >> Og dette er at gøre listen fra eksemplet. 80 00:04:42,600 --> 00:04:46,080 Du kan se de gennemføres et par flere funktioner her. 81 00:04:46,080 --> 00:04:49,210 Vi har forskellige faner, vi har de samme konto funktioner, 82 00:04:49,210 --> 00:04:52,141 og vi kan tilføje nye lister. 83 00:04:52,141 --> 00:04:54,140 Nu, en af ​​de virkelig cool funktion om Meteor 84 00:04:54,140 --> 00:04:57,450 er, at ikke alene kan det arbejde på din webbrowser, 85 00:04:57,450 --> 00:05:00,030 men du kan også oprette native iPhone og Android 86 00:05:00,030 --> 00:05:02,990 apps gennem et værktøj kaldet PhoneGap. 87 00:05:02,990 --> 00:05:06,740 >> Så nogle projekter vil komme præ-konfigureret til at køre 88 00:05:06,740 --> 00:05:08,700 på iOS, som denne todos app. 89 00:05:08,700 --> 00:05:14,780 Så alt jeg skal gøre for at køre det i iOS er skriv Meteor, køre, og derefter iOS. 90 00:05:14,780 --> 00:05:17,540 Og når jeg gør det, Meteor vil forberede pakken igen. 91 00:05:17,540 --> 00:05:21,670 Og så, når den er klar, vil det indlæse iOS simulator på min kommando. 92 00:05:21,670 --> 00:05:24,745 Bemærk Du kan kun køre iOS apps hvis du har en Mac-computer. 93 00:05:24,745 --> 00:05:27,650 94 00:05:27,650 --> 00:05:30,730 Du kan køre dine apps på Android på alle platforme. 95 00:05:30,730 --> 00:05:34,070 96 00:05:34,070 --> 00:05:38,290 >> Så nu kan du se, at min iPhone simulator kom op på min skærm. 97 00:05:38,290 --> 00:05:40,370 Og på bare et øjeblik, det vil indlæse med app. 98 00:05:40,370 --> 00:05:46,070 99 00:05:46,070 --> 00:05:48,490 Hvis vi gør det bare lidt mindre til at passe på skærmen, 100 00:05:48,490 --> 00:05:50,780 vi ser vi har vores iPhone app. 101 00:05:50,780 --> 00:05:53,220 Og bare så vi ikke bliver forvirrede, lad os gøre 102 00:05:53,220 --> 00:05:59,790 sikre, at vi er på samme hjemmeside, den lokale vært 3000. 103 00:05:59,790 --> 00:06:03,490 >> Så lige her er et eksempel af Meteor app jeg har, 104 00:06:03,490 --> 00:06:08,770 den todos app, der kører både på en telefon og en webbrowser. 105 00:06:08,770 --> 00:06:10,770 Og når jeg ændre ting i webbrowseren, 106 00:06:10,770 --> 00:06:12,675 det straks går til telefonen. 107 00:06:12,675 --> 00:06:16,500 Og jeg kan slette noget på telefonen, og det ændrer i webbrowseren. 108 00:06:16,500 --> 00:06:21,050 >> Nu normalt skabe native telefon app til iOS eller Android, 109 00:06:21,050 --> 00:06:26,090 du behøver at vide enten Java eller Mål C. teknologi Meteor anvendelser 110 00:06:26,090 --> 00:06:29,240 at gøre det muligt, at JavaScript kører som din app hedder PhoneGap. 111 00:06:29,240 --> 00:06:31,320 Hvad din app væsentlige er er en webbrowser. 112 00:06:31,320 --> 00:06:34,500 Og Meteor håndterer alle de vanskelige dele, der er involveret 113 00:06:34,500 --> 00:06:39,820 for at bringe denne webbrowser din iPhone eller din Android-enhed. 114 00:06:39,820 --> 00:06:42,210 Du kan se, at brugergrænseflade er glat, 115 00:06:42,210 --> 00:06:45,290 og det ser ud og føles meget meget gerne en indfødt app. 116 00:06:45,290 --> 00:06:48,620 Bemærk, at hvis jeg går til hjemmet skærm nu, jeg får også et ikon. 117 00:06:48,620 --> 00:06:50,880 Dette er ikke en hjemmeside som du vil finde i Safari. 118 00:06:50,880 --> 00:06:51,860 Dette er dens egen app. 119 00:06:51,860 --> 00:06:54,130 Du kan installere og slette det, hvis du gerne vil. 120 00:06:54,130 --> 00:06:59,500 121 00:06:59,500 --> 00:07:04,436 >> Vi kan kort vise dig, hvad koden for denne form for todos app ser ud. 122 00:07:04,436 --> 00:07:08,260 Hvis du kigger i todos mappe, vil du se at der er mange mapper. 123 00:07:08,260 --> 00:07:11,440 Men i løbet af seminaret, vil vi 124 00:07:11,440 --> 00:07:14,780 forstå, hvad hver mappe bruges til. 125 00:07:14,780 --> 00:07:17,830 Lad os gå ind i terminalen, så vi kan se de filer lidt bedre. 126 00:07:17,830 --> 00:07:20,410 >> Jeg har tænkt mig at trykke Kontrol C for at stoppe serveren, 127 00:07:20,410 --> 00:07:22,770 og nu er jeg tilbage i todos app. 128 00:07:22,770 --> 00:07:26,660 Jeg har forskellige mapper her, ligesom kunden mappe, serveren mappe. 129 00:07:26,660 --> 00:07:30,500 Og disse mapper blot betyde, at alt i kundens mappe 130 00:07:30,500 --> 00:07:32,630 bliver henrettet på din webbrowser. 131 00:07:32,630 --> 00:07:35,530 Alt i en server mappe bliver udført på en server. 132 00:07:35,530 --> 00:07:38,100 >> Hvad jeg ønsker at pege , er, at det, vi havde 133 00:07:38,100 --> 00:07:42,140 da vi havde vores telefon kører og vores web-browser, disse var klienter. 134 00:07:42,140 --> 00:07:45,730 Men hvad der kører i en terminal, det er serveren. 135 00:07:45,730 --> 00:07:48,710 Vi har andre mapper, ligesom lib, som biblioteket kode, 136 00:07:48,710 --> 00:07:51,050 Ligesom din hjælper funktioner, som du kan 137 00:07:51,050 --> 00:07:53,710 brug på både klienten og serveren. 138 00:07:53,710 --> 00:07:55,820 Og så har du en offentlig mappe og ressourcer 139 00:07:55,820 --> 00:07:59,310 mappe nødvendig for at få dine billeder og andre CSS indlæst. 140 00:07:59,310 --> 00:08:02,630 141 00:08:02,630 --> 00:08:09,360 >> Hvis du har Meteor installeret, vil vi fortsætte med tutorial til Meteor. 142 00:08:09,360 --> 00:08:12,790 Du kan gå til denne URL, meteor.com/install, 143 00:08:12,790 --> 00:08:17,990 at få den kommandolinje, jeg viste dig, der installerer Meteor. 144 00:08:17,990 --> 00:08:20,240 Vi vil gå gennem den første par skridt til at få en bedre 145 00:08:20,240 --> 00:08:22,760 mener om, hvordan du installerer Meteor. 146 00:08:22,760 --> 00:08:28,000 >> Men tænk først, jeg, det er vigtigt, at vi gennemgå lidt af JavaScript. 147 00:08:28,000 --> 00:08:32,360 For at vise dig nogle eksempler på, hvordan vores C viden kan oversættes 148 00:08:32,360 --> 00:08:34,950 til JavaScript, jeg har skabt et par eksempler. 149 00:08:34,950 --> 00:08:36,940 De er i js bibliotek. 150 00:08:36,940 --> 00:08:41,750 Så hvis i seminarerne mappe, du Se, der er en mappe kaldet js. 151 00:08:41,750 --> 00:08:44,540 Og her har vi et par eksempler. 152 00:08:44,540 --> 00:08:50,120 >> Lad os åbne den første eksempel og se meget hurtigt. 153 00:08:50,120 --> 00:08:53,980 Hvad vi ser, er din standard hej kommando verden. 154 00:08:53,980 --> 00:08:56,520 Du meddelelse i C, som du har ganske få linjer. 155 00:08:56,520 --> 00:09:00,490 Og som CS50 studerende ved, Vi har brug for en hovedfunktion, 156 00:09:00,490 --> 00:09:05,730 og vi er nødt til at omfatte standard I / O-bibliotek for at kalde printf. 157 00:09:05,730 --> 00:09:09,320 >> Lad os se på, hvordan JavaScript sammenligner. 158 00:09:09,320 --> 00:09:11,560 Jeg har tænkt mig at åbne ex1.js. 159 00:09:11,560 --> 00:09:14,650 Kommenteret ud er, hvad C-kode ville se ud, 160 00:09:14,650 --> 00:09:17,550 og linjen nedenfor er alle du skal køre i Node. 161 00:09:17,550 --> 00:09:20,452 Du behøver ikke en hovedfunktion, du behøver ikke at inkludere filer, 162 00:09:20,452 --> 00:09:21,660 og du behøver ikke at vende tilbage. 163 00:09:21,660 --> 00:09:23,810 Du skal bare ringe console.log. 164 00:09:23,810 --> 00:09:26,370 Dette svarer til din printf. 165 00:09:26,370 --> 00:09:29,310 >> Og det tager den samme argumenter printf ville. 166 00:09:29,310 --> 00:09:33,870 Og for at køre det, stedet for at køre gøre EX1, 167 00:09:33,870 --> 00:09:38,930 du vil bare kalde Knude ex1.js. 168 00:09:38,930 --> 00:09:41,830 Du skriver Node og derefter filen, og det bliver kørt. 169 00:09:41,830 --> 00:09:43,580 Det bliver ikke udarbejdet. 170 00:09:43,580 --> 00:09:45,970 JavaScript er et fortolket sprog. 171 00:09:45,970 --> 00:09:49,150 Så det behøver ikke at være kompileret før det køres. 172 00:09:49,150 --> 00:09:53,450 Hvis jeg ønskede at køre ex1.c, Jeg er nødt til at gøre det første, 173 00:09:53,450 --> 00:09:59,160 og så kan jeg køre den eksekverbare at få den samme output. 174 00:09:59,160 --> 00:10:02,460 >> Lad os hurtigt dække nogle andre JavaScript koncepter. 175 00:10:02,460 --> 00:10:04,490 Lad os se på eksempel to. 176 00:10:04,490 --> 00:10:14,690 I ex2.js, i ex2.c, vi kan se, at vi har noget kode. 177 00:10:14,690 --> 00:10:16,550 Lad mig hurtigt gå til en bedre tekst editor 178 00:10:16,550 --> 00:10:18,400 der vil vise disse nye linjer lidt bedre. 179 00:10:18,400 --> 00:10:21,760 180 00:10:21,760 --> 00:10:22,380 Ok. 181 00:10:22,380 --> 00:10:24,190 Her har vi f.eks 2.c. 182 00:10:24,190 --> 00:10:27,360 Her har vi forskellige typer at vi udskriver ud. 183 00:10:27,360 --> 00:10:30,880 Og som vi ved, printf tager forskellige procent argumenter 184 00:10:30,880 --> 00:10:34,050 at få adgang til forskellige dele af data. 185 00:10:34,050 --> 00:10:36,840 Hvis vi ønsker at udskrive en snor, vi kalder% s. 186 00:10:36,840 --> 00:10:40,390 Hvis vi ønsker at kalde en flydende punkt nummer, vi kaldte% f. 187 00:10:40,390 --> 00:10:45,810 Og der er ingen nem måde at kalde en Boolean ved sin sande eller falske værdi. 188 00:10:45,810 --> 00:10:50,760 Men hvis du bruger% d, kan du få et 0 eller et 1 for falsk og sandt. 189 00:10:50,760 --> 00:10:53,270 >> JavaScript er lidt pænere for os. 190 00:10:53,270 --> 00:10:57,740 I JavaScript, lad os se på de få forskelle, vi har i denne fil. 191 00:10:57,740 --> 00:11:05,790 Først bemærker du, at vi i C skal initialisere hver variabel med en type. 192 00:11:05,790 --> 00:11:06,940 S er en char stjerne. 193 00:11:06,940 --> 00:11:08,930 Det er en streng, og det kan ikke være nogen anden type. 194 00:11:08,930 --> 00:11:10,450 N er en svømmer. 195 00:11:10,450 --> 00:11:11,780 B er en Bool. 196 00:11:11,780 --> 00:11:14,220 >> Men i JavaScript, der er dynamiske typer. 197 00:11:14,220 --> 00:11:16,400 Det betyder, at du ikke nødt til at fortælle JavaScript 198 00:11:16,400 --> 00:11:17,860 hvilke typer dine variabler vil være. 199 00:11:17,860 --> 00:11:22,730 Du skal bare sige var for variabel navnet af den variable, og derefter dens værdi. 200 00:11:22,730 --> 00:11:24,690 Så en var kan være noget virkelig. 201 00:11:24,690 --> 00:11:25,640 Det kan være en streng. 202 00:11:25,640 --> 00:11:27,300 Det kan være en decimaltal. 203 00:11:27,300 --> 00:11:28,560 Det kan være et tegn. 204 00:11:28,560 --> 00:11:31,250 Det kan være en boolesk. 205 00:11:31,250 --> 00:11:34,380 Og konsol log fungerer lidt anderledes. 206 00:11:34,380 --> 00:11:37,340 Hvis du vil udskrive et nummer, ringe til dig% d. 207 00:11:37,340 --> 00:11:41,740 Men de fleste værdier kan være udskrives som strenge fint. 208 00:11:41,740 --> 00:11:46,220 >> Lad os køre dette i Node for at se, hvad der ville ske. 209 00:11:46,220 --> 00:11:51,880 Jeg kan ringe Knude ex2.js, og vi får printf 210 00:11:51,880 --> 00:11:56,870 med værdier CS50, N som det decimaltal, 211 00:11:56,870 --> 00:12:00,620 og derefter B som den booleske omdannes til en streng sandt. 212 00:12:00,620 --> 00:12:03,830 Hvad med om vi gjorde eksempel 2.c? 213 00:12:03,830 --> 00:12:09,630 Godt, vi har stadig nogle flere irritationsmomenter med printf. 214 00:12:09,630 --> 00:12:13,110 Bemærk, at flydende komma nummer skal være formateret korrekt, 215 00:12:13,110 --> 00:12:18,120 og at Boolean kan ikke bare blive vist som sandt eller falsk. 216 00:12:18,120 --> 00:12:18,620 Ok. 217 00:12:18,620 --> 00:12:22,680 Lad os nu se på eksempel tre. 218 00:12:22,680 --> 00:12:26,470 I eksempel tre, viser vi hvordan du ville bruge en for-løkke. 219 00:12:26,470 --> 00:12:27,630 Faktisk er det meget simpelt. 220 00:12:27,630 --> 00:12:31,430 En af de gode ting ved JavaScript er, at det C baseret. 221 00:12:31,430 --> 00:12:33,920 Det betyder, at en masse af din kode vil se meget ens 222 00:12:33,920 --> 00:12:36,490 og føle sig meget det samme. 223 00:12:36,490 --> 00:12:39,220 I en for-løkke, det eneste der har virkelig ændret her 224 00:12:39,220 --> 00:12:41,840 er i stedet for int i, har vi var i. 225 00:12:41,840 --> 00:12:45,470 Vi kan stadig tildele den til værdi nul, skal du kontrollere, at det er mindre end fem, 226 00:12:45,470 --> 00:12:49,390 og øg det med en med ++ operatør. 227 00:12:49,390 --> 00:12:56,286 Vi kalder console.log om jeg, og at udskriver os et nummer med hver linje. 228 00:12:56,286 --> 00:12:58,410 Lad os køre det virkelig hurtigt at se, hvad det udgange. 229 00:12:58,410 --> 00:13:02,320 230 00:13:02,320 --> 00:13:03,880 Vi får et nyt nummer i hver linje. 231 00:13:03,880 --> 00:13:06,920 En anden ting jeg vil have dig at bemærke med console.log 232 00:13:06,920 --> 00:13:09,960 er du ikke nødt til at skrive backslash n for den nye linje. 233 00:13:09,960 --> 00:13:12,480 Console.log udskriver alt på sin egen linje. 234 00:13:12,480 --> 00:13:14,585 Det er en nice feature at JavaScript giver os. 235 00:13:14,585 --> 00:13:18,440 236 00:13:18,440 --> 00:13:22,600 >> Lad os nu åbne eksempel fire. 237 00:13:22,600 --> 00:13:28,710 I eksempel fire, først i C, vi kræver et par funktioner. 238 00:13:28,710 --> 00:13:33,290 Bemærk at vi er nødt til at erklære funktioner, inden vi bruger dem i main. 239 00:13:33,290 --> 00:13:37,250 Hvis vi havde vigtigste først og derefter tilføje og så høj, gør, 240 00:13:37,250 --> 00:13:39,540 klang, eller GCC ville give os en fejl at sige 241 00:13:39,540 --> 00:13:41,060 at den ikke ved, hvad højt er. 242 00:13:41,060 --> 00:13:42,780 Det er ikke, hvad add er. 243 00:13:42,780 --> 00:13:46,480 Så i C, er du nødt til at være betyder det rækkefølge, du ringe til dine funktioner. 244 00:13:46,480 --> 00:13:49,220 245 00:13:49,220 --> 00:13:51,310 >> Lad os se på, hvordan du kan gøre dette i JavaScript. 246 00:13:51,310 --> 00:13:56,060 Vi har forskellige filer, fordi der er et par forskellige måder at gøre dette. 247 00:13:56,060 --> 00:13:58,950 En måde er temmelig meget en direkte oversættelse. 248 00:13:58,950 --> 00:14:02,180 Fordi funktioner i C returtyper, og JavaScript 249 00:14:02,180 --> 00:14:05,210 ikke rigtig kender eller pleje på, hvilken type du vender tilbage, 250 00:14:05,210 --> 00:14:06,300 du skriver ikke en type. 251 00:14:06,300 --> 00:14:08,100 I stedet skal du blot at skrive funktion, 252 00:14:08,100 --> 00:14:11,180 og alt er temmelig det samme som før. 253 00:14:11,180 --> 00:14:14,630 >> Når du har en variabel, ligesom i tilføje, vi bare nødt til at skrive x og y. 254 00:14:14,630 --> 00:14:16,060 Vi behøver ikke at sige x er en int. 255 00:14:16,060 --> 00:14:18,940 Vi behøver ikke at sige, y er et int. 256 00:14:18,940 --> 00:14:21,030 Vi vender tilbage med den samme syntaks. 257 00:14:21,030 --> 00:14:24,230 For høj, vi erklærer det med fungere i stedet for ugyldige. 258 00:14:24,230 --> 00:14:26,110 Bemærk, at uanset det er ugyldig eller ikke-ugyldig, 259 00:14:26,110 --> 00:14:28,380 det er stadig alle de samme funktioner. 260 00:14:28,380 --> 00:14:32,440 Og vi simpelthen ikke sætte noget i parentes, 261 00:14:32,440 --> 00:14:34,690 og det ser meget gerne C-kode. 262 00:14:34,690 --> 00:14:37,460 Og nedenfor kan vi kalde det nedenfor. 263 00:14:37,460 --> 00:14:42,730 >> Hvis vi ser på f.eks 4b, vi bemærker at jeg har ændret et par ting. 264 00:14:42,730 --> 00:14:45,340 Det eneste jeg har ændret virkelig selv er ordren. 265 00:14:45,340 --> 00:14:47,340 Vi har samme funktioner, men nu er de 266 00:14:47,340 --> 00:14:52,200 erklæret efter de er brugt i console.log og højt på linjerne 18, 19. 267 00:14:52,200 --> 00:14:54,740 Hvis du gjorde det i C, gøre ville smide en fejl. 268 00:14:54,740 --> 00:14:56,070 Her det fungerer fint. 269 00:14:56,070 --> 00:15:01,935 Og jeg kan vise dette til dig af ringer Node på 4b eksempel. 270 00:15:01,935 --> 00:15:05,350 271 00:15:05,350 --> 00:15:10,130 >> En anden måde, vi kan kalde funktioner er ved at gemme fungerer som variable. 272 00:15:10,130 --> 00:15:13,790 Ligesom jeg sagde, en variabel kan have en hvilken som helst type. 273 00:15:13,790 --> 00:15:16,720 En af de typer en variabel kan have, er en funktion. 274 00:15:16,720 --> 00:15:19,800 Så hvis man ser på f.eks 4c, hvad jeg har ændret 275 00:15:19,800 --> 00:15:24,320 her er Var tilføje stedet for funktion add. 276 00:15:24,320 --> 00:15:26,807 Og nu tilføje lig en funktion. 277 00:15:26,807 --> 00:15:28,140 Denne funktion her er anonym. 278 00:15:28,140 --> 00:15:33,346 Den har ikke noget navn, så det er bare funktion og derefter parentes. 279 00:15:33,346 --> 00:15:35,220 Syntaksen efter at ændrer ikke, men du 280 00:15:35,220 --> 00:15:38,300 behøver at huske på, at du har en variabel, som du er 281 00:15:38,300 --> 00:15:42,940 opbevaring af funktionen i add, og en variabel, du opbevaring i højt. 282 00:15:42,940 --> 00:15:47,620 >> Fordi tilføje og høj nu variabler og ikke funktioner ændrer noget. 283 00:15:47,620 --> 00:15:50,190 Dette er en fælles fejl jeg ser i en masse af folks JavaScripts, 284 00:15:50,190 --> 00:15:52,410 og noget at holde sig for øje. 285 00:15:52,410 --> 00:15:54,365 Når jeg kører dette, lad os se hvad der sker. 286 00:15:54,365 --> 00:15:57,410 287 00:15:57,410 --> 00:15:58,230 Jeg får en fejl. 288 00:15:58,230 --> 00:16:01,000 Det siger udefineret på dette punkt. 289 00:16:01,000 --> 00:16:03,520 Så det siger det ikke ved, hvad tilføje er. 290 00:16:03,520 --> 00:16:06,010 >> Fordi nu tilføje er ikke en funktion, tilføje en variabel. 291 00:16:06,010 --> 00:16:10,100 Og du har faktisk ikke givet tilføje en værdi endnu når du har brugt det. 292 00:16:10,100 --> 00:16:14,460 Det bringer os til eksempel 4d, hvor hvis du vil bruge variable som funktioner, 293 00:16:14,460 --> 00:16:17,210 du skal bare sørge for, at de få værdien før de anvendes. 294 00:16:17,210 --> 00:16:20,200 295 00:16:20,200 --> 00:16:23,420 >> Lad os gå videre til eksempel fem derefter. 296 00:16:23,420 --> 00:16:27,390 Her taler vi om struct i C. i C, structs 297 00:16:27,390 --> 00:16:30,320 har denne faste struktur til dem fordi du er nødt til at erklære dem 298 00:16:30,320 --> 00:16:33,050 før du bruger den, og du siger jeg har en elev, 299 00:16:33,050 --> 00:16:36,645 og alle studerende har præcis et navn, et år det ene køn. 300 00:16:36,645 --> 00:16:37,770 Det skal have dem alle. 301 00:16:37,770 --> 00:16:42,280 Det kan ikke have andre værdier, og de skal være specifikke typer. 302 00:16:42,280 --> 00:16:47,540 >> Så kan vi initialisere struct i denne nice syntaks 303 00:16:47,540 --> 00:16:49,470 fordi det ved bestillingen. 304 00:16:49,470 --> 00:16:51,460 Så det ved, at Roger er et navn. 305 00:16:51,460 --> 00:16:54,060 Den ved, at 2016 er et år og M er en køn 306 00:16:54,060 --> 00:16:58,200 fordi vi fortalte det på denne liste er en struct elev. 307 00:16:58,200 --> 00:17:01,607 Og så kan du udskrive det, at få adgang til s.name. 308 00:17:01,607 --> 00:17:03,690 Lad os se, hvordan vi ville konvertere det til JavaScript. 309 00:17:03,690 --> 00:17:06,400 310 00:17:06,400 --> 00:17:09,790 Bemærk, at S er nu en variabel, og der er ingen type. 311 00:17:09,790 --> 00:17:10,920 Det er bare en var igen. 312 00:17:10,920 --> 00:17:14,480 Fordi det er ligegyldigt, hvis det type af denne variabel er en pegepind, 313 00:17:14,480 --> 00:17:17,440 det er en struct, eller noget andet. 314 00:17:17,440 --> 00:17:19,650 Vi har en lidt anden syntaks. 315 00:17:19,650 --> 00:17:21,890 Denne syntaks er formålet syntaks. 316 00:17:21,890 --> 00:17:24,400 >> Du har måske set det i JSON. 317 00:17:24,400 --> 00:17:27,780 JSON faktisk står for JavaScript Object Notation. 318 00:17:27,780 --> 00:17:31,240 Dette er, hvordan du definerer objekter i JavaScript. 319 00:17:31,240 --> 00:17:34,500 Vi har en nøgle, der er værdien, såsom navn. 320 00:17:34,500 --> 00:17:37,680 Og vi giver det værdier den anden side af colon. 321 00:17:37,680 --> 00:17:41,850 Og én ting at huske på er dig behøver ikke at have et navn og et år 322 00:17:41,850 --> 00:17:42,980 og en køn for et objekt. 323 00:17:42,980 --> 00:17:44,570 Et objekt kan have ingen værdier. 324 00:17:44,570 --> 00:17:46,920 Det kan have så mange som du vil. 325 00:17:46,920 --> 00:17:50,375 >> Vi kan bruge disse objekter i netop den samme måde vil vi bruge en struct, s.name. 326 00:17:50,375 --> 00:17:53,810 327 00:17:53,810 --> 00:17:57,080 Vi kan køre det virkelig hurtigt ved at gøre node eksempel 5.c. 328 00:17:57,080 --> 00:18:00,320 329 00:18:00,320 --> 00:18:02,520 Vi kan faktisk ikke køre en C fil i knudepunkt. 330 00:18:02,520 --> 00:18:03,654 Det er ikke, hvad C er. 331 00:18:03,654 --> 00:18:04,695 Det kender kun JavaScript. 332 00:18:04,695 --> 00:18:09,865 Når vi køre ex5.js, får vi den værdi, som vi forventede. 333 00:18:09,865 --> 00:18:13,490 334 00:18:13,490 --> 00:18:15,980 >> Lad os gå videre til eksempel seks. 335 00:18:15,980 --> 00:18:18,930 Her vil jeg blot ønsker at tale lidt lidt mere om JavaScript arrays 336 00:18:18,930 --> 00:18:20,930 fordi de er en smule anderledes end hvad du er 337 00:18:20,930 --> 00:18:26,940 anvendes i C. Arrays noteret, ikke med konsollerne som i C, 338 00:18:26,940 --> 00:18:28,640 med de krøllede parenteser, men parentes. 339 00:18:28,640 --> 00:18:32,150 Du kan have en tom array, ligesom arr på linje fire. 340 00:18:32,150 --> 00:18:34,680 Du kan have arrays med flere værdier. 341 00:18:34,680 --> 00:18:39,790 Og du får adgang til dem På samme måde i C. 342 00:18:39,790 --> 00:18:42,990 >> Op til linje syv, alt synes temmelig ligetil. 343 00:18:42,990 --> 00:18:45,390 En mindre forskel er her på linje 10. 344 00:18:45,390 --> 00:18:48,620 Den måde, du får en længde på en array er lige ved at kalde .length. 345 00:18:48,620 --> 00:18:50,620 Et array kan faktisk være behandlet som et objekt, 346 00:18:50,620 --> 00:18:54,960 og dette formål har en længde ejendom at du ringer for at få længden af ​​det. 347 00:18:54,960 --> 00:18:57,350 Bemærk at dette er anderledes i C, fordi i C du 348 00:18:57,350 --> 00:19:01,600 nødt til at kende længden af Deres formål i god tid. 349 00:19:01,600 --> 00:19:04,700 >> Så en anden dejlig ting ved arrays er, at du kan have forskellige typer. 350 00:19:04,700 --> 00:19:07,470 Hvis du har et array i C, der er arrays af en bestemt værdi, 351 00:19:07,470 --> 00:19:11,900 enten en struct pointer eller flåd eller [uhørligt]. 352 00:19:11,900 --> 00:19:13,700 Her kan du have forskellige værdier. 353 00:19:13,700 --> 00:19:17,560 Jeg havde først en decimaltal, derefter en boolesk, derefter en anden heltal. 354 00:19:17,560 --> 00:19:19,670 Og faktisk kan de ændre typer også. 355 00:19:19,670 --> 00:19:21,220 Kig på linie 16. 356 00:19:21,220 --> 00:19:26,760 Array to ændrer fra at være et nummer, et heltal, til en streng. 357 00:19:26,760 --> 00:19:30,920 >> En anden nice ting om arrays er her på linje 19, har de uendelig størrelse. 358 00:19:30,920 --> 00:19:35,900 Du kan bare sige, at jeg ønsker, at hundrededel element at være strengen legit. 359 00:19:35,900 --> 00:19:38,510 Og det ser ikke ud til at gøre mening, fordi array kun 360 00:19:38,510 --> 00:19:41,080 har plads til tre elementer, så enden skal være to. 361 00:19:41,080 --> 00:19:44,800 Men når du gør dette, lad os se, hvad matrix tre bliver. 362 00:19:44,800 --> 00:19:47,460 Vi vil køre dette hurtigt med node eksempel six.js. 363 00:19:47,460 --> 00:19:49,990 364 00:19:49,990 --> 00:19:52,180 Vi får det virkelig lang array, og hvad der sker 365 00:19:52,180 --> 00:19:55,100 er vi de første par elementer og derefter en flok emner 366 00:19:55,100 --> 00:19:56,580 indtil vi får vores streng. 367 00:19:56,580 --> 00:19:58,580 JavaScript udfylder array som det er nødvendigt. 368 00:19:58,580 --> 00:20:01,790 369 00:20:01,790 --> 00:20:05,420 >> Lad os endelig gå til vores sidste eksempel. 370 00:20:05,420 --> 00:20:08,180 Her har vi en liste af forskellige studerende. 371 00:20:08,180 --> 00:20:11,350 Jeg vil gerne tale lidt lidt om nogle nice aspekter 372 00:20:11,350 --> 00:20:14,240 af efter sløjfer i JavaScript. 373 00:20:14,240 --> 00:20:17,500 I C, er efter sløjfer slags begrænset. 374 00:20:17,500 --> 00:20:21,490 De har en fast struktur, hvor man har en variabel, du har en tilstand, 375 00:20:21,490 --> 00:20:23,850 og så skal du gøre noget ved slutningen af ​​løkken. 376 00:20:23,850 --> 00:20:27,560 Og selvfølgelig dette fungerer i JavaScript, som vi så i de tidligere eksempler. 377 00:20:27,560 --> 00:20:31,030 Men vi har også pænere måder at gøre det i JavaScript. 378 00:20:31,030 --> 00:20:33,870 Dette kaldes en foreach løkke. 379 00:20:33,870 --> 00:20:36,580 >> Beklager, lad os gå tilbage eksempel syv her. 380 00:20:36,580 --> 00:20:39,320 Vi kan også sige afsnit er en liste. 381 00:20:39,320 --> 00:20:43,250 Så giv mig hver I eller hver indeks på listen. 382 00:20:43,250 --> 00:20:46,255 Så kan vi få den studerende ved blot at kalde afsnit af i. 383 00:20:46,255 --> 00:20:50,690 Så hele koden for at fastsætte i lig nul og sikre, at jeg 384 00:20:50,690 --> 00:20:54,420 er mindre end længden og tilføje en til jeg hver gang, det er 385 00:20:54,420 --> 00:21:00,220 at tage sig af du hellere pænt med denne foreach loop. 386 00:21:00,220 --> 00:21:02,830 >> Ikke kun gøre foreach sløjfer arbejde i lister eller arrays, 387 00:21:02,830 --> 00:21:06,130 de arbejder også i objekter, som også er rart. 388 00:21:06,130 --> 00:21:10,240 Du kan få navnet på hver ejendom ved blot at tage 389 00:21:10,240 --> 00:21:15,030 en ordbog eller en genstand, som studerende, og så bare sige at give mig hver tast. 390 00:21:15,030 --> 00:21:18,920 En nøgle ville være disse egenskaber, navn eller hus. 391 00:21:18,920 --> 00:21:22,870 Så hvad der kommer til at ske her, er, at vi udskrive først det navn og derefter 392 00:21:22,870 --> 00:21:24,920 hus hver elev. 393 00:21:24,920 --> 00:21:29,170 >> Jeg kan køre i Node virkelig hurtigt til at vise dig. 394 00:21:29,170 --> 00:21:35,510 Vi får først C stil for løkke, hvor vi får hver objekt, der udskrives. 395 00:21:35,510 --> 00:21:38,910 Og så har vi JavaScript stil, hvor du kan bare 396 00:21:38,910 --> 00:21:41,510 udskrive hver tast og værdi individuelt. 397 00:21:41,510 --> 00:21:45,560 398 00:21:45,560 --> 00:21:47,050 >> Ok. 399 00:21:47,050 --> 00:21:52,850 Nu da vi har dækket Node.js, tror jeg Vi er klar til at komme i gang med Meteor. 400 00:21:52,850 --> 00:21:56,070 Som jeg sagde, Meteor gjorde et stort stykke arbejde skrive nogle færdige eksempler 401 00:21:56,070 --> 00:22:00,600 for dig, at du kan udforske gennem denne tutorial eller i seminaret mappe. 402 00:22:00,600 --> 00:22:03,750 Men her vil jeg starte mere fra bunden. 403 00:22:03,750 --> 00:22:06,810 >> Lad os oprette en enkelt at gøre ansøgning. 404 00:22:06,810 --> 00:22:14,140 Dette er slags bunden af ​​hvad til gør program jeg viste dig tidligere er. 405 00:22:14,140 --> 00:22:16,990 I denne tutorial, du vil se, at der er 406 00:22:16,990 --> 00:22:20,180 en kommando Meteor skabe til oprette et nyt Meteor projekt. 407 00:22:20,180 --> 00:22:24,510 Du er nødt til at kalde dette for at køre Meteor projekter, fordi det 408 00:22:24,510 --> 00:22:27,470 vil udføre de kommandoer at oprette Meteor 409 00:22:27,470 --> 00:22:31,100 filer nødvendige for dit projekt. 410 00:22:31,100 --> 00:22:35,920 >> Hvis du går ind i terminalen, kan vi gå til mappen kaldet trin et. 411 00:22:35,920 --> 00:22:41,240 Og trin man vil svare med det første skridt i den tutorial. 412 00:22:41,240 --> 00:22:44,020 Note mapper, trin én, trin to, hele vejen til fem. 413 00:22:44,020 --> 00:22:47,835 Og hver enkelt er tilsvarende til et skridt i denne tutorial. 414 00:22:47,835 --> 00:22:50,960 415 00:22:50,960 --> 00:22:52,780 Jeg har tænkt mig at åbne den i min tekst editor her 416 00:22:52,780 --> 00:22:56,280 så vi kan se lidt af det, der blev oprettet. 417 00:22:56,280 --> 00:22:58,530 Vi bemærker, at der er fire hoveddele. 418 00:22:58,530 --> 00:23:01,170 Der er en Meteor bibliotek, .meteor. 419 00:23:01,170 --> 00:23:03,180 Og at du normalt behøver ikke at røre ved. 420 00:23:03,180 --> 00:23:05,070 Meteor tager sig af mappen, og det bare 421 00:23:05,070 --> 00:23:08,640 sørger for, at din Projektet vil fungere korrekt. 422 00:23:08,640 --> 00:23:14,580 >> Vi har også tre filer, en HTML-fil, en JavaScript-fil, og en CSS-fil. 423 00:23:14,580 --> 00:23:18,670 Lad os først starte med HTML-filen. 424 00:23:18,670 --> 00:23:21,310 Ved første øjekast, ser det som en normal HTML-dokument. 425 00:23:21,310 --> 00:23:23,490 Men bemærke, at der er et par forskelle. 426 00:23:23,490 --> 00:23:26,520 One, det er faktisk ikke en komplet HTML-dokument. 427 00:23:26,520 --> 00:23:28,640 Vi mangler HTML-tags. 428 00:23:28,640 --> 00:23:29,700 Dette er normalt. 429 00:23:29,700 --> 00:23:33,560 I Meteor, du er ikke forventet at skabe disse HTML tags. 430 00:23:33,560 --> 00:23:35,260 Det har gjort for dig. 431 00:23:35,260 --> 00:23:38,380 Du ønsker at begin-- hvis du ønsker at oprette en hjemmeside, 432 00:23:38,380 --> 00:23:40,430 du skal bare starte med lederen tag, 433 00:23:40,430 --> 00:23:43,510 definere det, og derefter definere kroppen tag. 434 00:23:43,510 --> 00:23:48,940 >> Men hvis du bemærker i denne HTML-fil, har vi en ny tag. 435 00:23:48,940 --> 00:23:50,350 Vi har skabelonen tag. 436 00:23:50,350 --> 00:23:52,050 Dette er ikke normal HTML. 437 00:23:52,050 --> 00:23:55,300 Dette er en speciel udgave af HTML at Meteor stiller til rådighed for dig. 438 00:23:55,300 --> 00:23:57,660 Det kaldes plads barer. 439 00:23:57,660 --> 00:24:00,980 Du kan definere skabeloner som lidt moduler, lidt ligesom hjælperfunktioner, 440 00:24:00,980 --> 00:24:03,660 i din C eller JavaScript-kode. 441 00:24:03,660 --> 00:24:06,020 Denne skabelon ville har et navn kaldet opgave. 442 00:24:06,020 --> 00:24:10,520 Og du kan se lige her på linje 13, som du kan ringe til disse skabeloner. 443 00:24:10,520 --> 00:24:14,380 Og hvad Meteor vil gøre, er blot udfylde disse opgaver for dig. 444 00:24:14,380 --> 00:24:17,540 445 00:24:17,540 --> 00:24:22,580 >> En anden ting du måske bemærke er en smule anderledes er det hver funktion. 446 00:24:22,580 --> 00:24:26,130 Hver vil tage variablen opgaver og art gå igennem det 447 00:24:26,130 --> 00:24:28,810 i denne foreach loop vi så i eksempel syv. 448 00:24:28,810 --> 00:24:34,200 Denne hver kan tage en ordbog eller en liste, et objekt eller en liste, 449 00:24:34,200 --> 00:24:38,820 og det vil bare gå igennem alle de værdier som en foreach løkke ville. 450 00:24:38,820 --> 00:24:44,110 Så hvis vi har en masse opgaver, dette vil kalde skabelonen på hver opgave. 451 00:24:44,110 --> 00:24:49,590 >> Lad os køre Meteor-projektet blot at se, at dette sker. 452 00:24:49,590 --> 00:24:53,260 Jeg kører Meteor projekt med bare Meteor eller Meteor køre. 453 00:24:53,260 --> 00:24:56,690 Og nu Meteor bare brug for til hurtigt at forberede projektet 454 00:24:56,690 --> 00:25:03,320 starte databasen nødvendigt og derefter sende den app lokalt. 455 00:25:03,320 --> 00:25:07,200 Vi kan gå til vores web browser nu. 456 00:25:07,200 --> 00:25:10,215 Og vi vil se, at vi har en meget enkel app. 457 00:25:10,215 --> 00:25:22,190 458 00:25:22,190 --> 00:25:29,130 Så hvad vi så viste var faktisk trin ét trinnet én fil. 459 00:25:29,130 --> 00:25:33,260 >> Lad os gå videre til trin to, kun fordi Jeg tror, ​​det vil tjene samme formål. 460 00:25:33,260 --> 00:25:36,500 Jeg er bare kommer til at ændre til trin to bibliotek 461 00:25:36,500 --> 00:25:39,550 og køre Meteor igen, så vi kan se skabelonen vi bare arbejdet med. 462 00:25:39,550 --> 00:25:43,560 463 00:25:43,560 --> 00:25:45,730 Ja, et spørgsmål? 464 00:25:45,730 --> 00:25:49,724 >> PUBLIKUM: Hvis vi får tilladelse nægtet, er at-- hvad det 465 00:25:49,724 --> 00:25:50,390 opfordrede til det? 466 00:25:50,390 --> 00:25:52,154 467 00:25:52,154 --> 00:25:54,070 ROGER ZURAWICKI: Hvis du kører Meteor køre, 468 00:25:54,070 --> 00:25:57,280 og du har tilladelse nægtet, nogle af dine filer 469 00:25:57,280 --> 00:25:59,070 måske ikke har ret tilladelse sæt. 470 00:25:59,070 --> 00:26:03,970 Så du er nødt til at kontrollere, hvor tilladelserne er slukket. 471 00:26:03,970 --> 00:26:06,030 De kunne være slukket i din Meteor projekt, 472 00:26:06,030 --> 00:26:08,550 eller de kunne være slukket i Meteor filer selv. 473 00:26:08,550 --> 00:26:13,742 >> PUBLIKUM: Hvis jeg hentede det lige nu fra din GitHub, så hvad skal jeg gøre 474 00:26:13,742 --> 00:26:16,110 [Uhørligt]? 475 00:26:16,110 --> 00:26:20,110 >> ROGER ZURAWICKI: Hvis du vil have at sikre, at du kan få adgang til det, 476 00:26:20,110 --> 00:26:21,450 der er en kommando, du kan køre. 477 00:26:21,450 --> 00:26:26,590 Lad mig hurtigt skrive det ud så andre mennesker kan se det. 478 00:26:26,590 --> 00:26:30,670 Jeg har tænkt mig at åbne en ny fane her og gå ind i mit seminar mappe. 479 00:26:30,670 --> 00:26:33,500 480 00:26:33,500 --> 00:26:36,490 Chmod er kommandoen at ændre tilladelser, 481 00:26:36,490 --> 00:26:40,060 og du kan sige r for at gøre det rekursivt for hver fil. 482 00:26:40,060 --> 00:26:46,040 Og tilladelser, kan du prøve 0755 at sikre, at du har fuld adgang, 483 00:26:46,040 --> 00:26:47,820 og alle andre kan læse. 484 00:26:47,820 --> 00:26:50,100 Og hvis du bare køre denne kommando, vil det gøre 485 00:26:50,100 --> 00:26:55,800 sikker tilladelserne er i kontrollere for hele biblioteket. 486 00:26:55,800 --> 00:26:59,160 Kørsel ls-l kan vise dig tilladelser i flere detaljer. 487 00:26:59,160 --> 00:27:01,290 Det ser OK. 488 00:27:01,290 --> 00:27:03,900 >> Hvad er vigtigst er at du har alle tre 489 00:27:03,900 --> 00:27:06,610 rwx for alle filerne i seminaret bibliotek. 490 00:27:06,610 --> 00:27:09,415 491 00:27:09,415 --> 00:27:11,330 Vidste at løse problemet? 492 00:27:11,330 --> 00:27:13,735 >> PUBLIKUM: Der står mangler operant [uhørligt]. 493 00:27:13,735 --> 00:27:17,980 494 00:27:17,980 --> 00:27:18,740 [Uhørligt] 495 00:27:18,740 --> 00:27:20,490 ROGER ZURAWICKI: Du nødt til at sikre dig 496 00:27:20,490 --> 00:27:23,022 har en prik i slutningen af ​​din kommando. 497 00:27:23,022 --> 00:27:23,938 Publikum: [uhørligt]. 498 00:27:23,938 --> 00:27:36,395 499 00:27:36,395 --> 00:27:37,520 ROGER ZURAWICKI: Okay. 500 00:27:37,520 --> 00:27:42,220 Lad os hurtigt gå tilbage til lokal vært, den app vi har. 501 00:27:42,220 --> 00:27:46,640 Og du vil se, at vi har en få opgaver her, som forventet. 502 00:27:46,640 --> 00:27:49,330 503 00:27:49,330 --> 00:27:51,990 Vi har en masse CSS, som du behøver ikke at bekymre sig om. 504 00:27:51,990 --> 00:27:53,740 The Meteor tutorial bare giver det til dig 505 00:27:53,740 --> 00:27:58,010 at gøre din opgaveliste ser lidt pænere end den almindelig HTML. 506 00:27:58,010 --> 00:28:02,290 Og vi har den JavaScript-fil, som Jeg vil gå mere i detaljer lidt senere, 507 00:28:02,290 --> 00:28:04,272 men det bare giver disse opgaver. 508 00:28:04,272 --> 00:28:04,980 Det er opgave én. 509 00:28:04,980 --> 00:28:05,740 Det er opgave to. 510 00:28:05,740 --> 00:28:06,590 Det er opgave tre. 511 00:28:06,590 --> 00:28:09,720 Så dette er data Meteor er få. 512 00:28:09,720 --> 00:28:15,590 >> En af de smarte ting om Meteor er at ændringer kan ske automatisk. 513 00:28:15,590 --> 00:28:18,990 Hvis jeg ønskede at ændre den navnet på den første opgave, 514 00:28:18,990 --> 00:28:22,490 så det vil sige dette ikke er opgave, og jeg gemmer den, 515 00:28:22,490 --> 00:28:26,370 så når jeg går til nettet browser, kan du opdatere det, 516 00:28:26,370 --> 00:28:30,861 og det automatisk siger dette er ikke opgave én. 517 00:28:30,861 --> 00:28:32,860 Du kan gøre det samme i nogen af ​​disse filer. 518 00:28:32,860 --> 00:28:37,940 Foretag en ændring, i stedet for at gøre liste, vil jeg have det min opgaveliste. 519 00:28:37,940 --> 00:28:40,980 >> Og en ting du bare lagt mærke til, at jeg ikke engang at opdatere. 520 00:28:40,980 --> 00:28:43,960 Ideen med forfriskende er venlig af løst for dig med Meteor. 521 00:28:43,960 --> 00:28:48,970 Når den opdager filen ændringer, det vil indlæse ændringerne for dig. 522 00:28:48,970 --> 00:28:53,110 Dette virker på alle filer, uanset om det er HTML, CSS eller JavaScript. 523 00:28:53,110 --> 00:28:57,990 For at vise dig, hvad denne app ville se lignende uden CSS, kan jeg fjerne det hele. 524 00:28:57,990 --> 00:29:04,720 Og når det er genindlæses, har du nu en ikke så pæn at gøre listen. 525 00:29:04,720 --> 00:29:06,370 Lad os sætte det indhold tilbage. 526 00:29:06,370 --> 00:29:11,343 Og sikkert nok, det opfrisker, og vores CSS er tilbage. 527 00:29:11,343 --> 00:29:11,843 Store. 528 00:29:11,843 --> 00:29:15,700 529 00:29:15,700 --> 00:29:20,010 >> Vi kan nu gå videre med tutorial. 530 00:29:20,010 --> 00:29:23,360 Lad os tale om trin to, skabeloner. 531 00:29:23,360 --> 00:29:27,140 Det er det, vi lige har set med de forskellige opgaver. 532 00:29:27,140 --> 00:29:31,550 Meteor vil forklare dig, hvad skabeloner og hvordan denne logik virker. 533 00:29:31,550 --> 00:29:34,760 Men lad os bare se på koden til se, om vi kan give mening ud af det. 534 00:29:34,760 --> 00:29:38,030 535 00:29:38,030 --> 00:29:41,460 >> I meget simple applikationer, ligesom det, vi har i den simple 536 00:29:41,460 --> 00:29:44,550 at gøre, trin et, trin to, trin tre, trin fire, trin fem, 537 00:29:44,550 --> 00:29:45,700 vi ikke har nogen mapper. 538 00:29:45,700 --> 00:29:47,533 Vi har ikke serveren mappe jeg nævnte. 539 00:29:47,533 --> 00:29:50,510 Vi har ikke klienten mappe, der blev nævnt. 540 00:29:50,510 --> 00:29:52,290 Så Meteor vil køre alle filerne. 541 00:29:52,290 --> 00:29:55,210 Det vil køre det både på klient, både på serveren. 542 00:29:55,210 --> 00:29:58,840 >> Og hvis du vil dele af din JavaScript kode til at køre lige på klienten, 543 00:29:58,840 --> 00:30:02,350 de har brug for at sikre, at du har en if-sætning, lidt ligesom hvad 544 00:30:02,350 --> 00:30:04,890 vi har i vores JavaScript-fil her. 545 00:30:04,890 --> 00:30:08,010 Så Meteor, hvis Det er kunden, så jeg 546 00:30:08,010 --> 00:30:12,355 ønsker at definere en skabelon helper kaldet opgaver. 547 00:30:12,355 --> 00:30:15,050 548 00:30:15,050 --> 00:30:19,260 Hvad denne kode egentlig gør, er det siger, at der er 549 00:30:19,260 --> 00:30:21,800 et objekt kaldet skabelon at Meteor giver. 550 00:30:21,800 --> 00:30:23,270 Og vi kommer til at tilføje en hjælper. 551 00:30:23,270 --> 00:30:27,680 Hjælpere er disse opgaver, disse ting som opgaver. 552 00:30:27,680 --> 00:30:33,890 >> Du vil se, at hvis vi går tilbage til HTML-fil, vi kaldte hver på opgaver. 553 00:30:33,890 --> 00:30:35,750 Opgaver er ikke defineret i HTML. 554 00:30:35,750 --> 00:30:37,770 Det er defineret i JavaScript. 555 00:30:37,770 --> 00:30:42,610 Og Meteor har brug for at vide, hvilke opgaver er når vi går ind i JavaScript her. 556 00:30:42,610 --> 00:30:45,550 Opgaver er dette hjælper. 557 00:30:45,550 --> 00:30:49,830 Helper, kan du tænke på den som en skabelon variabel. 558 00:30:49,830 --> 00:30:51,000 Og hvad betyder opgaver gøre? 559 00:30:51,000 --> 00:30:53,580 Tja, det returnerer en liste over værdier. 560 00:30:53,580 --> 00:30:56,750 Fordi det er en liste, vi kan kalde hver i det. 561 00:30:56,750 --> 00:30:58,590 Så det er derfor, vi kalder hver på opgaver. 562 00:30:58,590 --> 00:30:59,730 Og nu har vi opgave. 563 00:30:59,730 --> 00:31:02,850 564 00:31:02,850 --> 00:31:03,990 >> Hvad opgave gøre? 565 00:31:03,990 --> 00:31:07,740 Tja, det har denne pil her efter de krøllede parenteser. 566 00:31:07,740 --> 00:31:09,130 Det betyder opgave er en skabelon. 567 00:31:09,130 --> 00:31:11,100 Det er ikke en hjælper, ligesom det, vi lige har set. 568 00:31:11,100 --> 00:31:12,872 Det er en skabelon, vi har defineret. 569 00:31:12,872 --> 00:31:14,080 Og hvor har vi defineret det? 570 00:31:14,080 --> 00:31:16,950 Vi har defineret det under lige her. 571 00:31:16,950 --> 00:31:21,160 >> Alt denne skabelon gør er gør et element på listen, og det kalder tekst. 572 00:31:21,160 --> 00:31:24,160 Nu tekst synes at være en hjælper, men jeg vil vise dig 573 00:31:24,160 --> 00:31:26,610 at dette er faktisk stadig en data medlem af opgaver. 574 00:31:26,610 --> 00:31:29,230 575 00:31:29,230 --> 00:31:33,670 Når du ringer til hver, det går i datastrukturen en lille smule. 576 00:31:33,670 --> 00:31:39,130 Ligesom foreach loop, det nu bare ser på det første element i vores formål. 577 00:31:39,130 --> 00:31:41,850 Vi ser, at teksten er defineret her i vores objekt. 578 00:31:41,850 --> 00:31:45,350 Så Meteor er smart at vide, at vi taler om denne tekst, 579 00:31:45,350 --> 00:31:47,630 ikke hjælperen kaldet tekst. 580 00:31:47,630 --> 00:31:52,120 Det bliver bare værdien af ​​denne tekst her og viser det som HTML, 581 00:31:52,120 --> 00:31:55,475 og det er, hvordan de data går fra JavaScript til HTML. 582 00:31:55,475 --> 00:32:03,320 583 00:32:03,320 --> 00:32:07,030 >> Flytning på om det i dette eksempel vi hårdt kodet disse værdier. 584 00:32:07,030 --> 00:32:10,440 Meteor gør to virkelig nice ting for os. 585 00:32:10,440 --> 00:32:15,050 Udover den levende opdateringshastighed, som vi viste det lykkes også vores database. 586 00:32:15,050 --> 00:32:18,750 Hvis du skulle arbejde med PHP, du havde til at konfigurere phpMyAdmin. 587 00:32:18,750 --> 00:32:21,320 Du havde til at sikre din tabeller var alle i skak. 588 00:32:21,320 --> 00:32:24,760 Du havde at gøre en masse arbejde at gøre at din data er formateret korrekt, 589 00:32:24,760 --> 00:32:27,880 og PHP kunne kommunikere med den. 590 00:32:27,880 --> 00:32:30,170 >> Nu bruger Meteor et nyt paradigme. 591 00:32:30,170 --> 00:32:32,310 Dette er en mere moderne måde håndtere en database. 592 00:32:32,310 --> 00:32:34,580 Det er en teknologi kaldet MongoDB. 593 00:32:34,580 --> 00:32:38,740 Ligesom i JavaScript, så vi, at det ikke noget, hvilke typer data havde. 594 00:32:38,740 --> 00:32:39,640 Alt var en var. 595 00:32:39,640 --> 00:32:40,570 Det var ikke en charstar. 596 00:32:40,570 --> 00:32:40,930 Det var ikke en int. 597 00:32:40,930 --> 00:32:41,970 Det var ikke en struct. 598 00:32:41,970 --> 00:32:44,210 Det var bare var det, var det. 599 00:32:44,210 --> 00:32:46,320 >> MongoDB virker slags på samme måde. 600 00:32:46,320 --> 00:32:48,160 Du behøver ikke at definere dine tabeller. 601 00:32:48,160 --> 00:32:50,860 Du behøver ikke at sige en tabel har et navn, der har en int. 602 00:32:50,860 --> 00:32:54,710 Det har, ved jeg ikke, en dollar, hvilket er en decimal. 603 00:32:54,710 --> 00:32:58,360 Det er netop disse JavaScript objekter, alle disse Vars væsentlige. 604 00:32:58,360 --> 00:33:02,780 Og det er en virkelig kraftfuld måde til prototype din app. 605 00:33:02,780 --> 00:33:06,190 Og det er derfor, Meteor drager fordel af dette. 606 00:33:06,190 --> 00:33:11,080 >> Hvis vi gå til trin tre, lad os se, hvad der er ændret. 607 00:33:11,080 --> 00:33:15,480 Hvis vi ser på todos HTML, ikke meget. 608 00:33:15,480 --> 00:33:17,170 CSS har ikke ændret på alle. 609 00:33:17,170 --> 00:33:22,420 Men den lille ændring, vi ser i HTML er vi har ændret, hvordan opgaverne er defineret. 610 00:33:22,420 --> 00:33:23,800 Opgaver er nu en funktion. 611 00:33:23,800 --> 00:33:25,800 Det betyder, at hver gang vi ønsker at få opgaver, 612 00:33:25,800 --> 00:33:27,480 vi kommer til at køre denne funktion. 613 00:33:27,480 --> 00:33:29,230 Det behøver ikke returnere funktion som en værdi. 614 00:33:29,230 --> 00:33:33,710 >> Meteor er smart at faktisk køre funktion til at se, hvad vi får ud. 615 00:33:33,710 --> 00:33:36,650 Og det returnerer denne ting kaldet opgaver. 616 00:33:36,650 --> 00:33:40,650 Vi har defineret opgaver på linje et, og det er en Mongo samling. 617 00:33:40,650 --> 00:33:43,170 Mongo refererer til databasen Meteor bruger, 618 00:33:43,170 --> 00:33:48,420 og denne nye bare betyder lad os gøre en ny kollektion, kalder det opgaver. 619 00:33:48,420 --> 00:33:53,540 I MySQL, ville det svare til udkig efter tabellen kaldet opgaver. 620 00:33:53,540 --> 00:33:56,350 Mongo har samlinger, ikke borde. 621 00:33:56,350 --> 00:34:00,100 Så dette blot ser til opgaver. 622 00:34:00,100 --> 00:34:04,820 >> Nu skabelon i vores hjælper i skabelonen, alle 623 00:34:04,820 --> 00:34:08,380 vi skal gøre for at få alle de opgaver denne funktion, find 624 00:34:08,380 --> 00:34:11,710 og denne tomme tandbøjle. 625 00:34:11,710 --> 00:34:14,150 Det er mere især Mongo syntaks. 626 00:34:14,150 --> 00:34:16,159 Der er masser af dokumentation online for hvordan 627 00:34:16,159 --> 00:34:19,360 du kan lave en effektiv og virkelig nyttige Mongo forespørgsler. 628 00:34:19,360 --> 00:34:25,560 Men sådan noget er godt nok til bare at finde alle data. 629 00:34:25,560 --> 00:34:30,100 >> Nu et af de spørgsmål, du måtte se er, at vi faktisk aldrig tilføje data. 630 00:34:30,100 --> 00:34:35,020 Så hvad sker der, når vi faktisk køre trin tre? 631 00:34:35,020 --> 00:34:37,550 Lad os hurtigt gå ind trin tre og køre Meteor. 632 00:34:37,550 --> 00:34:42,870 633 00:34:42,870 --> 00:34:45,650 Bemærk, at jeg havde en anden Meteor projekt kører et andet sted, 634 00:34:45,650 --> 00:34:49,110 så Meteor kan ikke lide det. 635 00:34:49,110 --> 00:34:52,810 Jeg bare hurtigt tæt på den anden Meteor med Kontrol C, 636 00:34:52,810 --> 00:34:55,780 gå i trin tre, og køre Meteor igen. 637 00:34:55,780 --> 00:35:01,070 638 00:35:01,070 --> 00:35:03,180 Bemærk det er begyndt MongoDB fordi MongoDB 639 00:35:03,180 --> 00:35:06,370 er en del af hver Meteor projekt. 640 00:35:06,370 --> 00:35:09,190 >> Så det siger min ansøgning har fejl. 641 00:35:09,190 --> 00:35:10,590 Det er en nice feature Meteor har. 642 00:35:10,590 --> 00:35:13,700 Det gør, at din HTML er godt valideret. 643 00:35:13,700 --> 00:35:17,710 Lad os hurtigt se på, hvorfor det kunne være. 644 00:35:17,710 --> 00:35:26,110 Det synes jeg har ved et uheld kopieres forkert HTML-kode. 645 00:35:26,110 --> 00:35:30,610 Hvis jeg gemmer det nu, Meteor automatisk genstartet serveren, 646 00:35:30,610 --> 00:35:34,650 og nu app kører som forventet. 647 00:35:34,650 --> 00:35:39,220 Læg mærke til at løse dette, kan du bare køre den samme HTML-fil fra trin to, 648 00:35:39,220 --> 00:35:40,380 kopiere det ind trin tre. 649 00:35:40,380 --> 00:35:43,290 650 00:35:43,290 --> 00:35:45,917 >> Vi kan gå tilbage til vores lokale vært. 651 00:35:45,917 --> 00:35:47,500 Og nu ser vi, at vi har vores opgaveliste. 652 00:35:47,500 --> 00:35:50,070 Store, men den er tom. 653 00:35:50,070 --> 00:35:54,210 Vi har faktisk ikke har nogen opgaver i vores Mongo database. 654 00:35:54,210 --> 00:35:57,930 Så lad os tale om en få måder, vi kan gøre det. 655 00:35:57,930 --> 00:36:03,240 Hvis vi går tilbage til terminalen, vi kan lukke den og køre Meteor Mongo. 656 00:36:03,240 --> 00:36:05,320 >> Hvis du er fortrolig med hvordan Meteor fungerer, 657 00:36:05,320 --> 00:36:14,100 dette faktisk giver dig adgang til den fulde MongoDB for Meteor. 658 00:36:14,100 --> 00:36:17,570 Bemærk at du skal køre Meteor først for at dette virker. 659 00:36:17,570 --> 00:36:23,840 Så hvis jeg køre dette i en ny fane, jeg kan gå tilbage til den samme mappe. 660 00:36:23,840 --> 00:36:29,040 661 00:36:29,040 --> 00:36:32,570 Og nu Meteor fungerer fint. 662 00:36:32,570 --> 00:36:33,600 Dette er en prompt. 663 00:36:33,600 --> 00:36:36,350 664 00:36:36,350 --> 00:36:38,790 Lad mig gøre det lidt større, så vi kan se. 665 00:36:38,790 --> 00:36:41,550 Det ser en smule anderledes end hvad du kan anvendes til dig 666 00:36:41,550 --> 00:36:42,869 ikke rigtig brug for at bruge Mongo. 667 00:36:42,869 --> 00:36:45,410 Hele pointen med mig her er så du kan bruge JavaScript. 668 00:36:45,410 --> 00:36:48,250 Men hvis du er nysgerrig, Den Mongo API ikke 669 00:36:48,250 --> 00:36:50,730 bruger SQL, den Structured Query Language. 670 00:36:50,730 --> 00:36:55,570 Det bruger sit eget sprog, som ser meget gerne JavaScript. 671 00:36:55,570 --> 00:37:00,520 Meget hurtigt, kan vi finde tabellen via db.tasks. 672 00:37:00,520 --> 00:37:08,940 Og det fortæller mig viser sig, hvis vi kører finder, 673 00:37:08,940 --> 00:37:13,450 slags svarer til, hvad vi havde med Meteor, kan vi indlæse alle elementer. 674 00:37:13,450 --> 00:37:17,330 Problemet er, har vi ikke rent faktisk har nogen opgaver, der er defineret. 675 00:37:17,330 --> 00:37:20,600 Så det kan ikke få dem. 676 00:37:20,600 --> 00:37:22,130 >> Vi kan indsætte, selv om. 677 00:37:22,130 --> 00:37:25,170 Så vi kan køre insert med kommandoen insert. 678 00:37:25,170 --> 00:37:29,140 Og vi bare give det et objekt, og vi bare 679 00:37:29,140 --> 00:37:31,840 sørg for, at formatet er, hvad vi forventer. 680 00:37:31,840 --> 00:37:35,030 Hvis vi så på trin to, Vi så, at enhver opgave 681 00:37:35,030 --> 00:37:39,590 var et objekt med en tekst som nøgle og uanset 682 00:37:39,590 --> 00:37:41,640 dit til at gøre punkt på dagsordenen var som en variabel. 683 00:37:41,640 --> 00:37:44,680 Så vi kan gøre noget her. 684 00:37:44,680 --> 00:37:50,160 >> Vi kan have det indsætte en opgave kaldte jeg kommer fra Mongo. 685 00:37:50,160 --> 00:37:52,570 Og vi trykker på Enter, og det kører. 686 00:37:52,570 --> 00:37:56,900 Vi kan køre finde igen, og vi se, at der er et objekt her. 687 00:37:56,900 --> 00:38:01,810 Mongo tildeler det et id, som du har ikke rigtig brug for at bekymre sig om. 688 00:38:01,810 --> 00:38:06,690 Hvad er vigtigt for dig, er de data, du lægger i, er de data, du får ud. 689 00:38:06,690 --> 00:38:10,500 >> Lad os gå tilbage til vores hjemmeside, og hey, vores opgave indlæst. 690 00:38:10,500 --> 00:38:13,987 Og du kan se, at fordi Meteor er meget smart 691 00:38:13,987 --> 00:38:16,570 og altid opdaterer for dig, jeg behøvede ikke at røre siden. 692 00:38:16,570 --> 00:38:19,160 Det indlæses automatisk. 693 00:38:19,160 --> 00:38:23,520 >> Lad os køre noget kode i JavaScript selv at gøre dette. 694 00:38:23,520 --> 00:38:26,120 Ligesom vi har Node i ryggen ende at udføre ud JavaScript, 695 00:38:26,120 --> 00:38:29,280 Vi kan også køre JavaScript direkte i vores browsere. 696 00:38:29,280 --> 00:38:31,970 Du kan gøre dette ved en funktion kaldet Undersøg Element. 697 00:38:31,970 --> 00:38:34,210 Hvis jeg højreklikker på et sektion på siden, 698 00:38:34,210 --> 00:38:36,730 der er en mulighed kaldet Undersøg Element. 699 00:38:36,730 --> 00:38:38,840 Hvis du kører en browser som Safari, du 700 00:38:38,840 --> 00:38:45,430 kan være nødvendigt at aktivere din udvikler værktøjer før du får denne funktion. 701 00:38:45,430 --> 00:38:46,930 >> Hvad vi interesserer os, er konsollen. 702 00:38:46,930 --> 00:38:48,930 Så vil vi bare gå til konsol nederst. 703 00:38:48,930 --> 00:38:52,110 704 00:38:52,110 --> 00:38:55,970 Nu kan vi køre en JavaScript her, ligesom JavaScript 705 00:38:55,970 --> 00:38:58,860 filer, jeg viste i js eksempel. 706 00:38:58,860 --> 00:39:02,040 Men lad os nu se på opgaver. 707 00:39:02,040 --> 00:39:04,955 Vi kan køre vores kommando. 708 00:39:04,955 --> 00:39:07,830 Og forhåbentlig vil jeg være i stand til at gøre det lidt større, så vi alle kan se. 709 00:39:07,830 --> 00:39:14,390 710 00:39:14,390 --> 00:39:18,450 >> Hvis vi kører tasks.find, og du vil se, at dette er den samme kode 711 00:39:18,450 --> 00:39:24,840 at JavaScript fil bruger i trin tre, denne task.find. 712 00:39:24,840 --> 00:39:29,100 Vi kan køre de samme ting, og nu vi får nogle underlige ting. 713 00:39:29,100 --> 00:39:31,050 Hvordan får vi faktisk få data? 714 00:39:31,050 --> 00:39:34,860 Nå, vi er nødt til at køre dette kommando kaldet hente. 715 00:39:34,860 --> 00:39:37,150 >> Dette er meget nyttigt for fejlretning. 716 00:39:37,150 --> 00:39:41,000 Hvad du får her er en markør, og det er 717 00:39:41,000 --> 00:39:44,890 en pæn måde Meteor har optimerede Henter data. 718 00:39:44,890 --> 00:39:48,270 Denne markør har alle de funktioner til levende opdatering og opdatere siden 719 00:39:48,270 --> 00:39:49,650 når noget har ændret sig. 720 00:39:49,650 --> 00:39:51,280 Men det vil ikke få os dataene. 721 00:39:51,280 --> 00:39:52,720 Vi kan få dataene via hente. 722 00:39:52,720 --> 00:39:56,880 Og du ser vi har et objekt, og det er ligesom det, vi havde i Mongo, 723 00:39:56,880 --> 00:40:00,040 med et ID og den tekst, vi sætte i. 724 00:40:00,040 --> 00:40:04,200 >> Så hvordan kan vi indsætter et element i Meteor? 725 00:40:04,200 --> 00:40:07,250 Godt, vi bare har opgaver. 726 00:40:07,250 --> 00:40:09,990 Og så kan vi køre samme Indsæt kommando, 727 00:40:09,990 --> 00:40:17,520 giver en ordbog eller en genstand med det samme format, tekst 728 00:40:17,520 --> 00:40:22,340 og så kommer jeg fra konsollen. 729 00:40:22,340 --> 00:40:27,240 Tag et kig over for når jeg gøre dette, det dukker op på hjemmesiden 730 00:40:27,240 --> 00:40:29,660 automatisk. 731 00:40:29,660 --> 00:40:33,291 >> Bemærk at du kan sætte noget du ønsker i disse emner. 732 00:40:33,291 --> 00:40:35,040 Det behøver ikke at have en fast struktur. 733 00:40:35,040 --> 00:40:39,790 Jeg kunne have en svarende til nummer tre og b er lig med falsk. 734 00:40:39,790 --> 00:40:41,600 Og det hele fungerer. 735 00:40:41,600 --> 00:40:46,000 Jeg kan endda vælge ikke at indeholde en tekst overhovedet. 736 00:40:46,000 --> 00:40:48,320 Dette er bare ikke anbefales men fordi så Meteor 737 00:40:48,320 --> 00:40:50,920 vil ikke vide, hvad der skal vises. 738 00:40:50,920 --> 00:40:53,110 Men i hvert tilfælde, vi få et ID, og ​​det er 739 00:40:53,110 --> 00:40:54,785 ID på det objekt, du kan bruge. 740 00:40:54,785 --> 00:41:01,120 741 00:41:01,120 --> 00:41:03,280 >> Da vi fortsætter med trin fire og trin fem, 742 00:41:03,280 --> 00:41:06,870 tutorial vil vise dig måder, du kan oprette UI elementer ved hjælp af 743 00:41:06,870 --> 00:41:13,130 HTML du kender til skabe forskellige opgaver. 744 00:41:13,130 --> 00:41:15,440 Lad os se på trin fire virkelig hurtigt. 745 00:41:15,440 --> 00:41:18,290 Vi vil se, at vi har tilføjet et afsnit om begivenheder. 746 00:41:18,290 --> 00:41:20,874 Skabeloner kan have hjælpere, der får os data. 747 00:41:20,874 --> 00:41:22,040 Men det kan også ringe arrangementer. 748 00:41:22,040 --> 00:41:25,300 Og det er her, kram bliver nyttige, fordi begivenheder 749 00:41:25,300 --> 00:41:28,590 er, hvad der sker, når du klikker på forskellige ting på dit websted. 750 00:41:28,590 --> 00:41:33,790 >> Her vores kode er at fortælle os til at tilføje denne begivenhed. 751 00:41:33,790 --> 00:41:38,860 Tilføj det når du har indsendt noget med klassen nye opgave. 752 00:41:38,860 --> 00:41:41,910 Hvad du har her er en CSS selector. 753 00:41:41,910 --> 00:41:45,870 Så dette blot ser til en HTML element, der har klassen ny opgave. 754 00:41:45,870 --> 00:41:47,940 Og det ser ud til arrangementet, ligesom indsende. 755 00:41:47,940 --> 00:41:51,050 Andre begivenheder omfatter klik, hover, dobbeltklik, 756 00:41:51,050 --> 00:41:54,450 svarer til, hvad du får i normal HTML. 757 00:41:54,450 --> 00:41:56,770 >> Hvad du giver det her er nu en funktion. 758 00:41:56,770 --> 00:42:01,210 Og du kan få din kode i denne funktion. 759 00:42:01,210 --> 00:42:06,360 Denne funktion er, hvad ender med at få kaldes, når du indsender denne nye opgave. 760 00:42:06,360 --> 00:42:12,170 Lad os se på HTML lige så vi forstå, hvad denne nye opgave er. 761 00:42:12,170 --> 00:42:15,570 Vi har tilføjet en formular her med klasse ny opgave. 762 00:42:15,570 --> 00:42:19,880 Og det har en indgang, der tager tekst. 763 00:42:19,880 --> 00:42:22,605 Og det er her, vi vil tilføje vores nye opgaver. 764 00:42:22,605 --> 00:42:25,520 765 00:42:25,520 --> 00:42:29,780 >> Lad os køre trin fire i hjemmeside for at se, hvad det ser ud. 766 00:42:29,780 --> 00:42:32,710 Vi kan afslutte først ud af MongoDB vi havde 767 00:42:32,710 --> 00:42:35,300 fra vores tidligere eksempel med kontrol C. 768 00:42:35,300 --> 00:42:37,690 Og lad os ændre det til trinnet fire bibliotek. 769 00:42:37,690 --> 00:42:41,000 770 00:42:41,000 --> 00:42:42,920 Vi vil køre Meteor igen at starte serveren. 771 00:42:42,920 --> 00:42:46,850 772 00:42:46,850 --> 00:42:50,510 Og desværre, jeg havde Meteor kører i en anden terminal. 773 00:42:50,510 --> 00:42:53,080 Så jeg bare gå til at sikre dette lukket. 774 00:42:53,080 --> 00:43:01,805 Lad os forlade denne og forandring til fjerde del, trin fire. 775 00:43:01,805 --> 00:43:02,305 OK. 776 00:43:02,305 --> 00:43:11,220 777 00:43:11,220 --> 00:43:13,250 >> Nu er vores Meteor kode kører. 778 00:43:13,250 --> 00:43:19,480 Og du kan se, at det opdateret, uden os selv at skulle opdatere siden. 779 00:43:19,480 --> 00:43:24,410 Hvad har ændret sig her nu at vi ikke har nogen opgaver, 780 00:43:24,410 --> 00:43:29,530 men vi har en formular her, dette tekstfelt, at tilføje vores nye opgaver. 781 00:43:29,530 --> 00:43:31,550 Og vi kan skrive vores opgave her. 782 00:43:31,550 --> 00:43:34,564 Jeg kommer fra HTML-siden. 783 00:43:34,564 --> 00:43:36,105 Når jeg trykker på Enter, fik det forelagt. 784 00:43:36,105 --> 00:43:39,180 785 00:43:39,180 --> 00:43:44,540 >> Vi kan se, hvad der skete, da defineret af JavaScript-kode. 786 00:43:44,540 --> 00:43:49,930 Hvad denne funktion gjorde var tage teksten fra formularen, 787 00:43:49,930 --> 00:43:53,680 og så bare kaldt tasks.insert, som vi gjorde i konsollen. 788 00:43:53,680 --> 00:43:56,410 De valgte også at tilføje en createdAt dato. 789 00:43:56,410 --> 00:43:59,840 Dette er, hvordan du ville angive den aktuelle tid. 790 00:43:59,840 --> 00:44:03,220 Efter dette, det rydder formularen ved at gøre Kontroller, at værdien er den tomme streng. 791 00:44:03,220 --> 00:44:06,550 >> Og så kalder det return false til sørg intet andet sker. 792 00:44:06,550 --> 00:44:10,350 Når du vender tilbage falsk fra en formular begivenhed, der stopper henrettelse. 793 00:44:10,350 --> 00:44:14,520 Sig en form har en handling, ligesom forelægger en PHP side. 794 00:44:14,520 --> 00:44:16,980 Hvis du ikke var vendt tilbage falsk, ville du returnere sandt. 795 00:44:16,980 --> 00:44:18,500 Det ville ende med at gøre denne anmodning. 796 00:44:18,500 --> 00:44:20,590 Falske aflytninger det og stopper det lige der. 797 00:44:20,590 --> 00:44:23,510 798 00:44:23,510 --> 00:44:28,610 >> Så det var lidt demo om hvordan Meteor virker, og vi har 799 00:44:28,610 --> 00:44:30,980 fulgt tutorial i et stykke tid. 800 00:44:30,980 --> 00:44:33,560 Og du kan du velkommen fri til at fortsætte med at gøre dette. 801 00:44:33,560 --> 00:44:37,760 Der er masser af ressourcer, og tutorial er faktisk bare 802 00:44:37,760 --> 00:44:40,400 meget godt om at forklare hvad der foregår. 803 00:44:40,400 --> 00:44:44,362 Jeg ønsker at vise dig nu, i de få minutter, vi har tilbage, 804 00:44:44,362 --> 00:44:46,320 hvad er nogle af de køligere funktioner Meteor, 805 00:44:46,320 --> 00:44:48,772 og hvad er nogle af de flere nyttige pakker. 806 00:44:48,772 --> 00:44:51,730 En af de gode ting ved Meteor er, at du har en pakke system. 807 00:44:51,730 --> 00:44:55,620 Du kan nemt optage kode at mange tusinde udviklere 808 00:44:55,620 --> 00:44:58,840 har skrevet på verdensplan ind i dit Meteor projekt. 809 00:44:58,840 --> 00:45:02,410 Et eksempel på dette er, hvad du måske gøre i trin ni af tutorial, hvor 810 00:45:02,410 --> 00:45:07,435 du forsøger at tilføje konti til din Meteor projekt. 811 00:45:07,435 --> 00:45:10,010 812 00:45:10,010 --> 00:45:13,690 Hvis vi har en CS50 PHP projekt, ville vi have 813 00:45:13,690 --> 00:45:17,810 til at stole på rammerne eller vores egen kode for at gøre 814 00:45:17,810 --> 00:45:20,820 sikker på, vi sikkert håndtere adgangskoder og brugernavne 815 00:45:20,820 --> 00:45:23,120 og lagring af databasen og alt dette. 816 00:45:23,120 --> 00:45:25,670 >> Det viser sig Meteor har nogle pakker til at gøre det for dig, 817 00:45:25,670 --> 00:45:29,160 og til at gøre det meget nemt. 818 00:45:29,160 --> 00:45:31,950 Det, vi kan gøre, er at tilføje et par pakker. 819 00:45:31,950 --> 00:45:37,450 Så lad os gøre denne ret nu i vores konsol. 820 00:45:37,450 --> 00:45:42,460 Jeg har tænkt mig at afslutte projektet og lige nu gå ind i simple-todos. 821 00:45:42,460 --> 00:45:47,450 822 00:45:47,450 --> 00:45:50,050 Nu, enkel-Todos er det projekt, som du 823 00:45:50,050 --> 00:45:53,500 vil efter gøres med trin 11 eller trin 12, 824 00:45:53,500 --> 00:45:55,250 i slutningen af ​​dette selvstudium. 825 00:45:55,250 --> 00:45:58,642 Og lad os hurtigt se på det for at se hvad er de forskellige funktioner, vi har. 826 00:45:58,642 --> 00:46:01,610 Lad os bare sørg for at det kører. 827 00:46:01,610 --> 00:46:04,400 Nogle gange tager det et stykke tid at opdatere, men her er det. 828 00:46:04,400 --> 00:46:09,710 >> Vi har vores mulighed for at skjule udføre opgaver, og vi kan logge ind. 829 00:46:09,710 --> 00:46:11,770 Og det blev gjort med Meteor pakken. 830 00:46:11,770 --> 00:46:12,270 Det er dejligt. 831 00:46:12,270 --> 00:46:14,910 Vi har nu brugernavn og password tegn på. 832 00:46:14,910 --> 00:46:19,170 Men hvad nu, hvis vi ønskede at tilføje en anden form for login mekanisme? 833 00:46:19,170 --> 00:46:22,560 Lad os sige, jeg ønskede at logge i med min Meteor konto. 834 00:46:22,560 --> 00:46:27,270 Jeg har tænkt mig at køre meteor add, og dette er syntaksen for at tilføje pakker. 835 00:46:27,270 --> 00:46:32,160 Jeg kan sige konti og accounts.meteor. 836 00:46:32,160 --> 00:46:35,720 Det kommer til at nu finde pakken og indlæse den. 837 00:46:35,720 --> 00:46:40,480 Du kan se, at jeg har ikke fundet den rigtige pakkenavn. 838 00:46:40,480 --> 00:46:42,820 >> Så hvordan kan du finde ud af om pakker? 839 00:46:42,820 --> 00:46:46,380 Nå der er en stor hjemmeside, lavet rådighed af Meteor folk, 840 00:46:46,380 --> 00:46:47,780 kaldet atmospherejs.com. 841 00:46:47,780 --> 00:46:52,520 Atmospherejs, et ord, prik com, er en stor lager 842 00:46:52,520 --> 00:46:57,660 til at finde alle de Meteor pakker i arkivet. 843 00:46:57,660 --> 00:47:05,140 Jeg kan søge konti, og derefter det vil vise mig alle de relevante ting, 844 00:47:05,140 --> 00:47:07,320 alle pakker med kontoens navn. 845 00:47:07,320 --> 00:47:10,180 846 00:47:10,180 --> 00:47:13,270 >> Mens der indlæses, kan vi prøve tilføje nogle andre pakker. 847 00:47:13,270 --> 00:47:19,380 Måske Meteor pakken fungerer ikke lige nu, men jeg kan tilføje Facebook. 848 00:47:19,380 --> 00:47:22,860 849 00:47:22,860 --> 00:47:27,190 Jeg kan tilføje kontoen og derefter køre Meteor projektet igen. 850 00:47:27,190 --> 00:47:33,260 851 00:47:33,260 --> 00:47:36,900 Når dette begynder, lad os se hvad der er ændret på hjemmesiden. 852 00:47:36,900 --> 00:47:40,010 853 00:47:40,010 --> 00:47:44,580 Du kan see-- jeg måske nødt til at opdatere den her. 854 00:47:44,580 --> 00:47:47,320 >> Jeg har en knap til konfigurere Facebook login. 855 00:47:47,320 --> 00:47:49,765 Og her har jeg alle instruktionerne Meteor 856 00:47:49,765 --> 00:47:52,960 har forberedt for dig for oprette en Facebook-app. 857 00:47:52,960 --> 00:47:58,990 Og du kan bruge det oplysninger til at tilføje dine id'er. 858 00:47:58,990 --> 00:48:04,130 Når det er gjort, vil du have Facebook login arbejder i din app. 859 00:48:04,130 --> 00:48:08,559 >> Jeg bare at få en app-id og en hemmelighed, 860 00:48:08,559 --> 00:48:10,100 bare for at vise dig, hvordan dette kunne arbejde. 861 00:48:10,100 --> 00:48:16,000 862 00:48:16,000 --> 00:48:20,360 Du skal bruge en Facebook-konto at bruge Facebook udvikler muligheder. 863 00:48:20,360 --> 00:48:31,160 864 00:48:31,160 --> 00:48:35,290 Lad mig blot hurtigt at finde det Meteor taster, der er nødvendige. 865 00:48:35,290 --> 00:48:46,994 866 00:48:46,994 --> 00:48:49,160 Jeg har en anden Meteor projekt at jeg har tænkt mig at bruge, 867 00:48:49,160 --> 00:48:55,590 og jeg bare kommer til at tage nøgler fra den pågældende fil. 868 00:48:55,590 --> 00:49:14,410 869 00:49:14,410 --> 00:49:20,930 >> Og når jeg finder det, vil jeg bare være i stand at kopiere disse taster ind i min Facebook. 870 00:49:20,930 --> 00:49:23,489 Så her er en nøgle. 871 00:49:23,489 --> 00:49:24,280 Og det er hemmeligt. 872 00:49:24,280 --> 00:49:26,071 Du skal ikke være dele dette med folk. 873 00:49:26,071 --> 00:49:28,870 874 00:49:28,870 --> 00:49:30,910 Og så giver det din app hemmelighed. 875 00:49:30,910 --> 00:49:33,560 Og det er så Facebook kender du er dig. 876 00:49:33,560 --> 00:49:37,630 877 00:49:37,630 --> 00:49:39,080 Og du gemmer konfigurationen. 878 00:49:39,080 --> 00:49:45,160 879 00:49:45,160 --> 00:49:48,640 >> Jeg tror i den proces, jeg har stoppet min Meteor app. 880 00:49:48,640 --> 00:49:52,290 Så jeg vil bare gøre sikker på det er der stadig. 881 00:49:52,290 --> 00:49:54,962 882 00:49:54,962 --> 00:49:58,610 OK, lad os sikre vores Meteor server kører så websiden kører. 883 00:49:58,610 --> 00:50:02,440 Bemærk hvis vi stoppe Meteor server, siden er der stadig. 884 00:50:02,440 --> 00:50:04,700 Det vil bare ikke opdatere længere. 885 00:50:04,700 --> 00:50:10,290 Den Meteor serveren er nødvendig for at sikre, at siden er levende. 886 00:50:10,290 --> 00:50:14,050 >> OK, jeg har sendt det, og nu Jeg kan logge på med Facebook. 887 00:50:14,050 --> 00:50:17,400 Nu er det bare et spørgsmål om at have en Facebook-pop up 888 00:50:17,400 --> 00:50:21,710 og sætte på din konto information og logge på. 889 00:50:21,710 --> 00:50:24,520 890 00:50:24,520 --> 00:50:27,930 Når du gør det, Facebook måske nag dig for nogle mere sikkerhed. 891 00:50:27,930 --> 00:50:29,810 Så vi vil bare stoppe der. 892 00:50:29,810 --> 00:50:34,110 Pointen er, at når du er færdig med det, vil du have Facebook login. 893 00:50:34,110 --> 00:50:37,850 >> Meteor har en masse andre pakker også. 894 00:50:37,850 --> 00:50:39,200 Du kan logge på med Google+. 895 00:50:39,200 --> 00:50:40,500 Du kan logge ind med GitHub. 896 00:50:40,500 --> 00:50:42,170 Du kan logge ind med Twitter. 897 00:50:42,170 --> 00:50:44,870 Eller hvis du søger, vil du finde masser af andre ting 898 00:50:44,870 --> 00:50:49,170 Ligesom Meetup, LinkedIn, og Meteor Developer. 899 00:50:49,170 --> 00:50:53,100 Så Meteor Udvikler var pakke, jeg var på udkig efter. 900 00:50:53,100 --> 00:50:56,170 meteor tilføje konti-meteor-udvikler. 901 00:50:56,170 --> 00:51:06,192 902 00:51:06,192 --> 00:51:07,900 I mellemtiden, jeg også ønsker at anbefale 903 00:51:07,900 --> 00:51:11,340 nogle andre pakker til dine projekter. 904 00:51:11,340 --> 00:51:14,670 Det kan vise sig nyttigt at omfatte jQuery pakken. 905 00:51:14,670 --> 00:51:17,909 Dette giver dig mulighed for at bruge jQuery i dine kunder. 906 00:51:17,909 --> 00:51:21,200 Du kunne bare gøre det med en linje, og Meteor vil sørge for du er ajour 907 00:51:21,200 --> 00:51:21,825 på jQuery. 908 00:51:21,825 --> 00:51:24,330 909 00:51:24,330 --> 00:51:27,450 Jeg anbefaler også houston: admin. 910 00:51:27,450 --> 00:51:31,550 >> Det er lidt ligesom en phpMyAdmin slags værktøj til din MongoDB. 911 00:51:31,550 --> 00:51:33,890 Dette giver dig mulighed for at redigere dine data ganske let 912 00:51:33,890 --> 00:51:37,950 uden at skulle gå til Mongo shell, ligesom jeg havde gjort tidligere i seminaret. 913 00:51:37,950 --> 00:51:43,160 914 00:51:43,160 --> 00:51:47,101 Så nu, at der kører, lad os køre Meteor igen og se hvad vi kan gøre. 915 00:51:47,101 --> 00:51:56,240 916 00:51:56,240 --> 00:52:00,720 >> Du bemærker, at tilføje nogle pakker kan have dem præsentere nogle advarsler. 917 00:52:00,720 --> 00:52:02,720 Du behøver ikke at bekymre sig om det med Houston. 918 00:52:02,720 --> 00:52:06,040 919 00:52:06,040 --> 00:52:10,810 Så kan vi nu har mulighed for at konfigurere Meteor admin. 920 00:52:10,810 --> 00:52:15,080 Og de giver dig retninger hvis du ønsker at indstille, at op. 921 00:52:15,080 --> 00:52:17,750 922 00:52:17,750 --> 00:52:20,440 >> Vi kan nu også gå til / admin. 923 00:52:20,440 --> 00:52:23,280 Det er bragt til dig ved Houston pakke. 924 00:52:23,280 --> 00:52:27,470 Og det er Meteor admin interface. 925 00:52:27,470 --> 00:52:30,660 Du skal bare oprette en admin konto, som så. 926 00:52:30,660 --> 00:52:38,150 Og hvis du opdaterer siden, kan du har nogle samlinger viser. 927 00:52:38,150 --> 00:52:40,980 928 00:52:40,980 --> 00:52:43,460 >> Det er et meget nyttigt redskab, og jeg stærkt anbefale det. 929 00:52:43,460 --> 00:52:46,717 930 00:52:46,717 --> 00:52:49,050 Du kan se, at fordi Houston gav nogle fejl, 931 00:52:49,050 --> 00:52:52,330 Vi har ikke nogen samlinger viser op lige nu. 932 00:52:52,330 --> 00:52:56,800 Den måde, du ville bruge Houston er sørg denne funktion får 933 00:52:56,800 --> 00:52:58,860 hedder på dit simple-todos. 934 00:52:58,860 --> 00:53:01,370 Så Houston ikke vide, hvad mine opgaver er. 935 00:53:01,370 --> 00:53:04,490 >> Vi har oprettet en Mongo indsamling kaldet opgaver. 936 00:53:04,490 --> 00:53:11,390 Lad os gå ind i enkel-todos og bare sørge for, at i JavaScript, 937 00:53:11,390 --> 00:53:16,295 har vi tilføjet opgaver til vores kollektioner. 938 00:53:16,295 --> 00:53:19,340 939 00:53:19,340 --> 00:53:25,670 Vi har nu gemt, og det er at opbygge ansøgningen, forfriskende. 940 00:53:25,670 --> 00:53:26,750 Og lad os se. 941 00:53:26,750 --> 00:53:29,090 Nu har vi nogle opgaver. 942 00:53:29,090 --> 00:53:32,630 Og vi kan tilføje nogle nye opgaver. 943 00:53:32,630 --> 00:53:35,840 Men hvis vi ønsker at tilføje opgaver, lad os gøre det med den app selv. 944 00:53:35,840 --> 00:53:39,660 945 00:53:39,660 --> 00:53:41,050 >> Nu kan vi tilføje nogle data. 946 00:53:41,050 --> 00:53:53,410 Hej, dette er en opgave. 947 00:53:53,410 --> 00:53:57,080 Det virker lidt besynderligt, at vi ikke se nogen opgaver. 948 00:53:57,080 --> 00:54:00,290 949 00:54:00,290 --> 00:54:05,260 Vi vil måske kontrollere, hvis vi fik nogen fejl her, eller måske et andet sted. 950 00:54:05,260 --> 00:54:08,810 951 00:54:08,810 --> 00:54:20,260 Hvis vi går ind i admin, der synes mærkeligt. 952 00:54:20,260 --> 00:54:24,080 Hvis du trækker lageret efter dette seminar, 953 00:54:24,080 --> 00:54:27,580 Jeg vil sørge for, at simple-Todos arbejder med Houston. 954 00:54:27,580 --> 00:54:30,370 Desværre ser det ikke ud til være at arbejde i dette øjeblik. 955 00:54:30,370 --> 00:54:34,810 956 00:54:34,810 --> 00:54:37,640 >> Er der andre spørgsmål? 957 00:54:37,640 --> 00:54:41,800 Houston normalt er en værktøj, der fungerer godt. 958 00:54:41,800 --> 00:54:44,510 Houston specifikt er en smule buggier end de andre, 959 00:54:44,510 --> 00:54:49,470 men jeg anbefaler det, når det virker. 960 00:54:49,470 --> 00:54:50,080 Ja. 961 00:54:50,080 --> 00:54:52,395 >> Publikum: Hvad kan du gøre med Facebook-pakken 962 00:54:52,395 --> 00:54:54,270 Når en bruger er logget i med deres Facebook? 963 00:54:54,270 --> 00:54:55,978 >> ROGER ZURAWICKI: Når en brugers logget ind, 964 00:54:55,978 --> 00:54:59,540 du kan foretage opkald til Facebook API. 965 00:54:59,540 --> 00:55:02,890 En masse, der ligger mere i hvordan Facebook åbner deres API. 966 00:55:02,890 --> 00:55:05,120 Meteor, skal du sørge har forbindelsen. 967 00:55:05,120 --> 00:55:09,300 Men alt efter det er et spørgsmål om at lære at bruge Facebook API. 968 00:55:09,300 --> 00:55:10,216 Publikum: [uhørligt]. 969 00:55:10,216 --> 00:55:17,756 970 00:55:17,756 --> 00:55:18,880 ROGER ZURAWICKI: Okay. 971 00:55:18,880 --> 00:55:21,670 Mange tak for denne CS50 seminar i Meteor. 972 00:55:21,670 --> 00:55:24,060 Hvis du har spørgsmål, du kan e-maile mig 973 00:55:24,060 --> 00:55:28,319 på min e-mail-adresse anført nedenfor seminaret. 974 00:55:28,319 --> 00:55:30,110 Og jeg vil være glad for at besvare dine spørgsmål. 975 00:55:30,110 --> 00:55:33,020 Jeg vil også være på CS50 hackathon bør 976 00:55:33,020 --> 00:55:35,550 du brug for hjælp med dine Meteor projekter. 977 00:55:35,550 --> 00:55:37,650 Tak for at se. 978 00:55:37,650 --> 00:55:38,816