[Musik spiller]
ROGER ZURAWICKI: Hej, mit navn er Roger Zurawicki,
og jeg vil være der dækker det CS50 Meteor seminaret.
Meteor er en ny ramme afsat til den nye form for web,
ikke PHP gør anmodninger frem og tilbage art
af web vi så i PHPP sættet, men de mere dynamiske JavaScript
dele af nettet.
Ting Meteor kan gøre omfatter også levende Opdatering
og straks kommunikere mellem brugere af samme hjemmeside.
>> Til dette seminar, har vi kode vært på min GitHub.
Du kan gå til denne URL og hente den.
Hvis du ved, hvordan man bruger Git, du kan klone arkivet.
Hvis du ikke ved, hvordan man bruger Git eller har ikke brugt GitHub,
det er helt fint.
Jeg vil vise dig virkelig hurtigt hvordan vi kan gå til GitHub,
og der er en mulighed for at downloade en zip lige der.
Når du har downloadet denne mappe, du kan komme i gang med at spille med vores kode.
>> Mere information om Meteor kan findes på meteor.com.
I seminaret mappe, jeg faktisk har nogle Meteor projekter, vi kan bruge.
En af de mapper, vi har i vores seminar projekt er todos app.
Så hvis jeg går ind i det jeg, har Meteor installeret.
Så for at køre det, jeg bare nødt til at skrive Meteor, og Meteor vil installere.
Som du kan se, er vi nødt til at sikre, at vi installerede Meteor.
Så jeg bare gå til køre den en gang til
at sikre, at Meteor er installeret korrekt.
>> Mens jeg har Meteor installation, kan jeg vise dig
nogle levende demoer af Meteor sites går live lige nu på internettet.
Jeg har en demo af vores app.
Du kan få adgang til den på følgende webadresse.
Dette er det at gøre app, vi har i vores seminar bibliotek.
Webadressen til dette er rozu-rabbit.meteor.com.
Du vil se, at Meteor vil faktisk vært for dine Meteor projekter gratis.
Og i slutningen af ​​seminaret, vil du være i stand til at gøre det så godt.
>> Dette er en opgaveliste app.
Og du kan logge på, skal du oprette konti og tilføje opgaver.
Du kan oprette en konto som så.
Og nu, når du har en konto, kan du tilføje opgaver.
For eksempel er en af ​​de opgaver I muligvis gå hente mit vasketøj.
Og hvis du er på dette site online, vil du
faktisk se denne opgave på din computer i realtid.
>> Jeg kan vise dig en hurtig demo dette ved at åbne Rozu-kanin
i en anden fane med den samme webadresse.
Og vi ser, at de samme data kommer op.
Vi kan også køre det i en anden browser.
Sig jeg køre det i Safari.
På den måde, vi er ikke logget ind.
Så vi har den samme Meteor app, og når det indlæses,
vi vil se de samme data vi gjorde i den første.
Som du kan se, jeg er ikke logget ind her.
Og når publikum kontrollerer data, den opdaterer på alle browsere
samtidigt.
Dette er en af ​​de virkelig smarte funktioner om Meteor.
Med næsten ingen arbejde, du har en levende ajourføring app
at ændringer på alle dine enheder på én gang.
>> Hvis jeg markere afkrydsningsfeltet her i min opgaveliste, vil vi have,
i min anden Chrome-browseren, elementet afkrydset.
Og dette sker øjeblikkeligt.
Ok.
Så det ser ud som Meteor Installationen er nu klar.
Så lad os nu gå tilbage til todos app og køre dette lokalt.
>> Hvis du har et Meteor projekt, kan du bare køre det med kommandoen Meteor.
Når du gør dette, Meteor vil gøre nogle forberedelse
for at sikre alle din kode er i skak.
Og så det vil fortælle dig, at det Projektet er klar til at blive serveret.
Du skal muligvis give din firewall, hvis din computer blokerer dig.
>> Så hvad Meteor fortæller mig lige nu er, at på denne hjemmeside
lokale til min computer, kan jeg se hvad dette Meteor projekt er.
Bemærk, at lige nu, min app er ikke er tilgængelige til internettet.
Vi dækker hvordan at bringe din Meteor app til et levende sted lidt senere.
Så jeg bare at kopiere denne URL nu og gå ind i Google Chrome.
>> Og dette er at gøre listen fra eksemplet.
Du kan se de gennemføres et par flere funktioner her.
Vi har forskellige faner, vi har de samme konto funktioner,
og vi kan tilføje nye lister.
Nu, en af ​​de virkelig cool funktion om Meteor
er, at ikke alene kan det arbejde på din webbrowser,
men du kan også oprette native iPhone og Android
apps gennem et værktøj kaldet PhoneGap.
>> Så nogle projekter vil komme præ-konfigureret til at køre
på iOS, som denne todos app.
Så alt jeg skal gøre for at køre det i iOS er skriv Meteor, køre, og derefter iOS.
Og når jeg gør det, Meteor vil forberede pakken igen.
Og så, når den er klar, vil det indlæse iOS simulator på min kommando.
Bemærk Du kan kun køre iOS apps hvis du har en Mac-computer.
Du kan køre dine apps på Android på alle platforme.
>> Så nu kan du se, at min iPhone simulator kom op på min skærm.
Og på bare et øjeblik, det vil indlæse med app.
Hvis vi gør det bare lidt mindre til at passe på skærmen,
vi ser vi har vores iPhone app.
Og bare så vi ikke bliver forvirrede, lad os gøre
sikre, at vi er på samme hjemmeside, den lokale vært 3000.
>> Så lige her er et eksempel af Meteor app jeg har,
den todos app, der kører både på en telefon og en webbrowser.
Og når jeg ændre ting i webbrowseren,
det straks går til telefonen.
Og jeg kan slette noget på telefonen, og det ændrer i webbrowseren.
>> Nu normalt skabe native telefon app til iOS eller Android,
du behøver at vide enten Java eller Mål C. teknologi Meteor anvendelser
at gøre det muligt, at JavaScript kører som din app hedder PhoneGap.
Hvad din app væsentlige er er en webbrowser.
Og Meteor håndterer alle de vanskelige dele, der er involveret
for at bringe denne webbrowser din iPhone eller din Android-enhed.
Du kan se, at brugergrænseflade er glat,
og det ser ud og føles meget meget gerne en indfødt app.
Bemærk, at hvis jeg går til hjemmet skærm nu, jeg får også et ikon.
Dette er ikke en hjemmeside som du vil finde i Safari.
Dette er dens egen app.
Du kan installere og slette det, hvis du gerne vil.
>> Vi kan kort vise dig, hvad koden for denne form for todos app ser ud.
Hvis du kigger i todos mappe, vil du se at der er mange mapper.
Men i løbet af seminaret, vil vi
forstå, hvad hver mappe bruges til.
Lad os gå ind i terminalen, så vi kan se de filer lidt bedre.
>> Jeg har tænkt mig at trykke Kontrol C for at stoppe serveren,
og nu er jeg tilbage i todos app.
Jeg har forskellige mapper her, ligesom kunden mappe, serveren mappe.
Og disse mapper blot betyde, at alt i kundens mappe
bliver henrettet på din webbrowser.
Alt i en server mappe bliver udført på en server.
>> Hvad jeg ønsker at pege , er, at det, vi havde
da vi havde vores telefon kører og vores web-browser, disse var klienter.
Men hvad der kører i en terminal, det er serveren.
Vi har andre mapper, ligesom lib, som biblioteket kode,
Ligesom din hjælper funktioner, som du kan
brug på både klienten og serveren.
Og så har du en offentlig mappe og ressourcer
mappe nødvendig for at få dine billeder og andre CSS indlæst.
>> Hvis du har Meteor installeret, vil vi fortsætte med tutorial til Meteor.
Du kan gå til denne URL, meteor.com/install,
at få den kommandolinje, jeg viste dig, der installerer Meteor.
Vi vil gå gennem den første par skridt til at få en bedre
mener om, hvordan du installerer Meteor.
>> Men tænk først, jeg, det er vigtigt, at vi gennemgå lidt af JavaScript.
For at vise dig nogle eksempler på, hvordan vores C viden kan oversættes
til JavaScript, jeg har skabt et par eksempler.
De er i js bibliotek.
Så hvis i seminarerne mappe, du Se, der er en mappe kaldet js.
Og her har vi et par eksempler.
>> Lad os åbne den første eksempel og se meget hurtigt.
Hvad vi ser, er din standard hej kommando verden.
Du meddelelse i C, som du har ganske få linjer.
Og som CS50 studerende ved, Vi har brug for en hovedfunktion,
og vi er nødt til at omfatte standard I / O-bibliotek for at kalde printf.
>> Lad os se på, hvordan JavaScript sammenligner.
Jeg har tænkt mig at åbne ex1.js.
Kommenteret ud er, hvad C-kode ville se ud,
og linjen nedenfor er alle du skal køre i Node.
Du behøver ikke en hovedfunktion, du behøver ikke at inkludere filer,
og du behøver ikke at vende tilbage.
Du skal bare ringe console.log.
Dette svarer til din printf.
>> Og det tager den samme argumenter printf ville.
Og for at køre det, stedet for at køre gøre EX1,
du vil bare kalde Knude ex1.js.
Du skriver Node og derefter filen, og det bliver kørt.
Det bliver ikke udarbejdet.
JavaScript er et fortolket sprog.
Så det behøver ikke at være kompileret før det køres.
Hvis jeg ønskede at køre ex1.c, Jeg er nødt til at gøre det første,
og så kan jeg køre den eksekverbare at få den samme output.
>> Lad os hurtigt dække nogle andre JavaScript koncepter.
Lad os se på eksempel to.
I ex2.js, i ex2.c, vi kan se, at vi har noget kode.
Lad mig hurtigt gå til en bedre tekst editor
der vil vise disse nye linjer lidt bedre.
Ok.
Her har vi f.eks 2.c.
Her har vi forskellige typer at vi udskriver ud.
Og som vi ved, printf tager forskellige procent argumenter
at få adgang til forskellige dele af data.
Hvis vi ønsker at udskrive en snor, vi kalder% s.
Hvis vi ønsker at kalde en flydende punkt nummer, vi kaldte% f.
Og der er ingen nem måde at kalde en Boolean ved sin sande eller falske værdi.
Men hvis du bruger% d, kan du få et 0 eller et 1 for falsk og sandt.
>> JavaScript er lidt pænere for os.
I JavaScript, lad os se på de få forskelle, vi har i denne fil.
Først bemærker du, at vi i C skal initialisere hver variabel med en type.
S er en char stjerne.
Det er en streng, og det kan ikke være nogen anden type.
N er en svømmer.
B er en Bool.
>> Men i JavaScript, der er dynamiske typer.
Det betyder, at du ikke nødt til at fortælle JavaScript
hvilke typer dine variabler vil være.
Du skal bare sige var for variabel navnet af den variable, og derefter dens værdi.
Så en var kan være noget virkelig.
Det kan være en streng.
Det kan være en decimaltal.
Det kan være et tegn.
Det kan være en boolesk.
Og konsol log fungerer lidt anderledes.
Hvis du vil udskrive et nummer, ringe til dig% d.
Men de fleste værdier kan være udskrives som strenge fint.
>> Lad os køre dette i Node for at se, hvad der ville ske.
Jeg kan ringe Knude ex2.js, og vi får printf
med værdier CS50, N som det decimaltal,
og derefter B som den booleske omdannes til en streng sandt.
Hvad med om vi gjorde eksempel 2.c?
Godt, vi har stadig nogle flere irritationsmomenter med printf.
Bemærk, at flydende komma nummer skal være formateret korrekt,
og at Boolean kan ikke bare blive vist som sandt eller falsk.
Ok.
Lad os nu se på eksempel tre.
I eksempel tre, viser vi hvordan du ville bruge en for-løkke.
Faktisk er det meget simpelt.
En af de gode ting ved JavaScript er, at det C baseret.
Det betyder, at en masse af din kode vil se meget ens
og føle sig meget det samme.
I en for-løkke, det eneste der har virkelig ændret her
er i stedet for int i, har vi var i.
Vi kan stadig tildele den til værdi nul, skal du kontrollere, at det er mindre end fem,
og øg det med en med ++ operatør.
Vi kalder console.log om jeg, og at udskriver os et nummer med hver linje.
Lad os køre det virkelig hurtigt at se, hvad det udgange.
Vi får et nyt nummer i hver linje.
En anden ting jeg vil have dig at bemærke med console.log
er du ikke nødt til at skrive backslash n for den nye linje.
Console.log udskriver alt på sin egen linje.
Det er en nice feature at JavaScript giver os.
>> Lad os nu åbne eksempel fire.
I eksempel fire, først i C, vi kræver et par funktioner.
Bemærk at vi er nødt til at erklære funktioner, inden vi bruger dem i main.
Hvis vi havde vigtigste først og derefter tilføje og så høj, gør,
klang, eller GCC ville give os en fejl at sige
at den ikke ved, hvad højt er.
Det er ikke, hvad add er.
Så i C, er du nødt til at være betyder det rækkefølge, du ringe til dine funktioner.
>> Lad os se på, hvordan du kan gøre dette i JavaScript.
Vi har forskellige filer, fordi der er et par forskellige måder at gøre dette.
En måde er temmelig meget en direkte oversættelse.
Fordi funktioner i C returtyper, og JavaScript
ikke rigtig kender eller pleje på, hvilken type du vender tilbage,
du skriver ikke en type.
I stedet skal du blot at skrive funktion,
og alt er temmelig det samme som før.
>> Når du har en variabel, ligesom i tilføje, vi bare nødt til at skrive x og y.
Vi behøver ikke at sige x er en int.
Vi behøver ikke at sige, y er et int.
Vi vender tilbage med den samme syntaks.
For høj, vi erklærer det med fungere i stedet for ugyldige.
Bemærk, at uanset det er ugyldig eller ikke-ugyldig,
det er stadig alle de samme funktioner.
Og vi simpelthen ikke sætte noget i parentes,
og det ser meget gerne C-kode.
Og nedenfor kan vi kalde det nedenfor.
>> Hvis vi ser på f.eks 4b, vi bemærker at jeg har ændret et par ting.
Det eneste jeg har ændret virkelig selv er ordren.
Vi har samme funktioner, men nu er de
erklæret efter de er brugt i console.log og højt på linjerne 18, 19.
Hvis du gjorde det i C, gøre ville smide en fejl.
Her det fungerer fint.
Og jeg kan vise dette til dig af ringer Node på 4b eksempel.
>> En anden måde, vi kan kalde funktioner er ved at gemme fungerer som variable.
Ligesom jeg sagde, en variabel kan have en hvilken som helst type.
En af de typer en variabel kan have, er en funktion.
Så hvis man ser på f.eks 4c, hvad jeg har ændret
her er Var tilføje stedet for funktion add.
Og nu tilføje lig en funktion.
Denne funktion her er anonym.
Den har ikke noget navn, så det er bare funktion og derefter parentes.
Syntaksen efter at ændrer ikke, men du
behøver at huske på, at du har en variabel, som du er
opbevaring af funktionen i add, og en variabel, du opbevaring i højt.
>> Fordi tilføje og høj nu variabler og ikke funktioner ændrer noget.
Dette er en fælles fejl jeg ser i en masse af folks JavaScripts,
og noget at holde sig for øje.
Når jeg kører dette, lad os se hvad der sker.
Jeg får en fejl.
Det siger udefineret på dette punkt.
Så det siger det ikke ved, hvad tilføje er.
>> Fordi nu tilføje er ikke en funktion, tilføje en variabel.
Og du har faktisk ikke givet tilføje en værdi endnu når du har brugt det.
Det bringer os til eksempel 4d, hvor hvis du vil bruge variable som funktioner,
du skal bare sørge for, at de få værdien før de anvendes.
>> Lad os gå videre til eksempel fem derefter.
Her taler vi om struct i C. i C, structs
har denne faste struktur til dem fordi du er nødt til at erklære dem
før du bruger den, og du siger jeg har en elev,
og alle studerende har præcis et navn, et år det ene køn.
Det skal have dem alle.
Det kan ikke have andre værdier, og de skal være specifikke typer.
>> Så kan vi initialisere struct i denne nice syntaks
fordi det ved bestillingen.
Så det ved, at Roger er et navn.
Den ved, at 2016 er et år og M er en køn
fordi vi fortalte det på denne liste er en struct elev.
Og så kan du udskrive det, at få adgang til s.name.
Lad os se, hvordan vi ville konvertere det til JavaScript.
Bemærk, at S er nu en variabel, og der er ingen type.
Det er bare en var igen.
Fordi det er ligegyldigt, hvis det type af denne variabel er en pegepind,
det er en struct, eller noget andet.
Vi har en lidt anden syntaks.
Denne syntaks er formålet syntaks.
>> Du har måske set det i JSON.
JSON faktisk står for JavaScript Object Notation.
Dette er, hvordan du definerer objekter i JavaScript.
Vi har en nøgle, der er værdien, såsom navn.
Og vi giver det værdier den anden side af colon.
Og én ting at huske på er dig behøver ikke at have et navn og et år
og en køn for et objekt.
Et objekt kan have ingen værdier.
Det kan have så mange som du vil.
>> Vi kan bruge disse objekter i netop den samme måde vil vi bruge en struct, s.name.
Vi kan køre det virkelig hurtigt ved at gøre node eksempel 5.c.
Vi kan faktisk ikke køre en C fil i knudepunkt.
Det er ikke, hvad C er.
Det kender kun JavaScript.
Når vi køre ex5.js, får vi den værdi, som vi forventede.
>> Lad os gå videre til eksempel seks.
Her vil jeg blot ønsker at tale lidt lidt mere om JavaScript arrays
fordi de er en smule anderledes end hvad du er
anvendes i C. Arrays noteret, ikke med konsollerne som i C,
med de krøllede parenteser, men parentes.
Du kan have en tom array, ligesom arr på linje fire.
Du kan have arrays med flere værdier.
Og du får adgang til dem På samme måde i C.
>> Op til linje syv, alt synes temmelig ligetil.
En mindre forskel er her på linje 10.
Den måde, du får en længde på en array er lige ved at kalde .length.
Et array kan faktisk være behandlet som et objekt,
og dette formål har en længde ejendom at du ringer for at få længden af ​​det.
Bemærk at dette er anderledes i C, fordi i C du
nødt til at kende længden af Deres formål i god tid.
>> Så en anden dejlig ting ved arrays er, at du kan have forskellige typer.
Hvis du har et array i C, der er arrays af en bestemt værdi,
enten en struct pointer eller flåd eller [uhørligt].
Her kan du have forskellige værdier.
Jeg havde først en decimaltal, derefter en boolesk, derefter en anden heltal.
Og faktisk kan de ændre typer også.
Kig på linie 16.
Array to ændrer fra at være et nummer, et heltal, til en streng.
>> En anden nice ting om arrays er her på linje 19, har de uendelig størrelse.
Du kan bare sige, at jeg ønsker, at hundrededel element at være strengen legit.
Og det ser ikke ud til at gøre mening, fordi array kun
har plads til tre elementer, så enden skal være to.
Men når du gør dette, lad os se, hvad matrix tre bliver.
Vi vil køre dette hurtigt med node eksempel six.js.
Vi får det virkelig lang array, og hvad der sker
er vi de første par elementer og derefter en flok emner
indtil vi får vores streng.
JavaScript udfylder array som det er nødvendigt.
>> Lad os endelig gå til vores sidste eksempel.
Her har vi en liste af forskellige studerende.
Jeg vil gerne tale lidt lidt om nogle nice aspekter
af efter sløjfer i JavaScript.
I C, er efter sløjfer slags begrænset.
De har en fast struktur, hvor man har en variabel, du har en tilstand,
og så skal du gøre noget ved slutningen af ​​løkken.
Og selvfølgelig dette fungerer i JavaScript, som vi så i de tidligere eksempler.
Men vi har også pænere måder at gøre det i JavaScript.
Dette kaldes en foreach løkke.
>> Beklager, lad os gå tilbage eksempel syv her.
Vi kan også sige afsnit er en liste.
Så giv mig hver I eller hver indeks på listen.
Så kan vi få den studerende ved blot at kalde afsnit af i.
Så hele koden for at fastsætte i lig nul og sikre, at jeg
er mindre end længden og tilføje en til jeg hver gang, det er
at tage sig af du hellere pænt med denne foreach loop.
>> Ikke kun gøre foreach sløjfer arbejde i lister eller arrays,
de arbejder også i objekter, som også er rart.
Du kan få navnet på hver ejendom ved blot at tage
en ordbog eller en genstand, som studerende, og så bare sige at give mig hver tast.
En nøgle ville være disse egenskaber, navn eller hus.
Så hvad der kommer til at ske her, er, at vi udskrive først det navn og derefter
hus hver elev.
>> Jeg kan køre i Node virkelig hurtigt til at vise dig.
Vi får først C stil for løkke, hvor vi får hver objekt, der udskrives.
Og så har vi JavaScript stil, hvor du kan bare
udskrive hver tast og værdi individuelt.
>> Ok.
Nu da vi har dækket Node.js, tror jeg Vi er klar til at komme i gang med Meteor.
Som jeg sagde, Meteor gjorde et stort stykke arbejde skrive nogle færdige eksempler
for dig, at du kan udforske gennem denne tutorial eller i seminaret mappe.
Men her vil jeg starte mere fra bunden.
>> Lad os oprette en enkelt at gøre ansøgning.
Dette er slags bunden af ​​hvad til gør program jeg viste dig tidligere er.
I denne tutorial, du vil se, at der er
en kommando Meteor skabe til oprette et nyt Meteor projekt.
Du er nødt til at kalde dette for at køre Meteor projekter, fordi det
vil udføre de kommandoer at oprette Meteor
filer nødvendige for dit projekt.
>> Hvis du går ind i terminalen, kan vi gå til mappen kaldet trin et.
Og trin man vil svare med det første skridt i den tutorial.
Note mapper, trin én, trin to, hele vejen til fem.
Og hver enkelt er tilsvarende til et skridt i denne tutorial.
Jeg har tænkt mig at åbne den i min tekst editor her
så vi kan se lidt af det, der blev oprettet.
Vi bemærker, at der er fire hoveddele.
Der er en Meteor bibliotek, .meteor.
Og at du normalt behøver ikke at røre ved.
Meteor tager sig af mappen, og det bare
sørger for, at din Projektet vil fungere korrekt.
>> Vi har også tre filer, en HTML-fil, en JavaScript-fil, og en CSS-fil.
Lad os først starte med HTML-filen.
Ved første øjekast, ser det som en normal HTML-dokument.
Men bemærke, at der er et par forskelle.
One, det er faktisk ikke en komplet HTML-dokument.
Vi mangler HTML-tags.
Dette er normalt.
I Meteor, du er ikke forventet at skabe disse HTML tags.
Det har gjort for dig.
Du ønsker at begin-- hvis du ønsker at oprette en hjemmeside,
du skal bare starte med lederen tag,
definere det, og derefter definere kroppen tag.
>> Men hvis du bemærker i denne HTML-fil, har vi en ny tag.
Vi har skabelonen tag.
Dette er ikke normal HTML.
Dette er en speciel udgave af HTML at Meteor stiller til rådighed for dig.
Det kaldes plads barer.
Du kan definere skabeloner som lidt moduler, lidt ligesom hjælperfunktioner,
i din C eller JavaScript-kode.
Denne skabelon ville har et navn kaldet opgave.
Og du kan se lige her på linje 13, som du kan ringe til disse skabeloner.
Og hvad Meteor vil gøre, er blot udfylde disse opgaver for dig.
>> En anden ting du måske bemærke er en smule anderledes er det hver funktion.
Hver vil tage variablen opgaver og art gå igennem det
i denne foreach loop vi så i eksempel syv.
Denne hver kan tage en ordbog eller en liste, et objekt eller en liste,
og det vil bare gå igennem alle de værdier som en foreach løkke ville.
Så hvis vi har en masse opgaver, dette vil kalde skabelonen på hver opgave.
>> Lad os køre Meteor-projektet blot at se, at dette sker.
Jeg kører Meteor projekt med bare Meteor eller Meteor køre.
Og nu Meteor bare brug for til hurtigt at forberede projektet
starte databasen nødvendigt og derefter sende den app lokalt.
Vi kan gå til vores web browser nu.
Og vi vil se, at vi har en meget enkel app.
Så hvad vi så viste var faktisk trin ét trinnet én fil.
>> Lad os gå videre til trin to, kun fordi Jeg tror, ​​det vil tjene samme formål.
Jeg er bare kommer til at ændre til trin to bibliotek
og køre Meteor igen, så vi kan se skabelonen vi bare arbejdet med.
Ja, et spørgsmål?
>> PUBLIKUM: Hvis vi får tilladelse nægtet, er at-- hvad det
opfordrede til det?
ROGER ZURAWICKI: Hvis du kører Meteor køre,
og du har tilladelse nægtet, nogle af dine filer
måske ikke har ret tilladelse sæt.
Så du er nødt til at kontrollere, hvor tilladelserne er slukket.
De kunne være slukket i din Meteor projekt,
eller de kunne være slukket i Meteor filer selv.
>> PUBLIKUM: Hvis jeg hentede det lige nu fra din GitHub, så hvad skal jeg gøre
[Uhørligt]?
>> ROGER ZURAWICKI: Hvis du vil have at sikre, at du kan få adgang til det,
der er en kommando, du kan køre.
Lad mig hurtigt skrive det ud så andre mennesker kan se det.
Jeg har tænkt mig at åbne en ny fane her og gå ind i mit seminar mappe.
Chmod er kommandoen at ændre tilladelser,
og du kan sige r for at gøre det rekursivt for hver fil.
Og tilladelser, kan du prøve 0755 at sikre, at du har fuld adgang,
og alle andre kan læse.
Og hvis du bare køre denne kommando, vil det gøre
sikker tilladelserne er i kontrollere for hele biblioteket.
Kørsel ls-l kan vise dig tilladelser i flere detaljer.
Det ser OK.
>> Hvad er vigtigst er at du har alle tre
rwx for alle filerne i seminaret bibliotek.
Vidste at løse problemet?
>> PUBLIKUM: Der står mangler operant [uhørligt].
[Uhørligt]
ROGER ZURAWICKI: Du nødt til at sikre dig
har en prik i slutningen af ​​din kommando.
Publikum: [uhørligt].
ROGER ZURAWICKI: Okay.
Lad os hurtigt gå tilbage til lokal vært, den app vi har.
Og du vil se, at vi har en få opgaver her, som forventet.
Vi har en masse CSS, som du behøver ikke at bekymre sig om.
The Meteor tutorial bare giver det til dig
at gøre din opgaveliste ser lidt pænere end den almindelig HTML.
Og vi har den JavaScript-fil, som Jeg vil gå mere i detaljer lidt senere,
men det bare giver disse opgaver.
Det er opgave én.
Det er opgave to.
Det er opgave tre.
Så dette er data Meteor er få.
>> En af de smarte ting om Meteor er at ændringer kan ske automatisk.
Hvis jeg ønskede at ændre den navnet på den første opgave,
så det vil sige dette ikke er opgave, og jeg gemmer den,
så når jeg går til nettet browser, kan du opdatere det,
og det automatisk siger dette er ikke opgave én.
Du kan gøre det samme i nogen af ​​disse filer.
Foretag en ændring, i stedet for at gøre liste, vil jeg have det min opgaveliste.
>> Og en ting du bare lagt mærke til, at jeg ikke engang at opdatere.
Ideen med forfriskende er venlig af løst for dig med Meteor.
Når den opdager filen ændringer, det vil indlæse ændringerne for dig.
Dette virker på alle filer, uanset om det er HTML, CSS eller JavaScript.
For at vise dig, hvad denne app ville se lignende uden CSS, kan jeg fjerne det hele.
Og når det er genindlæses, har du nu en ikke så pæn at gøre listen.
Lad os sætte det indhold tilbage.
Og sikkert nok, det opfrisker, og vores CSS er tilbage.
Store.
>> Vi kan nu gå videre med tutorial.
Lad os tale om trin to, skabeloner.
Det er det, vi lige har set med de forskellige opgaver.
Meteor vil forklare dig, hvad skabeloner og hvordan denne logik virker.
Men lad os bare se på koden til se, om vi kan give mening ud af det.
>> I meget simple applikationer, ligesom det, vi har i den simple
at gøre, trin et, trin to, trin tre, trin fire, trin fem,
vi ikke har nogen mapper.
Vi har ikke serveren mappe jeg nævnte.
Vi har ikke klienten mappe, der blev nævnt.
Så Meteor vil køre alle filerne.
Det vil køre det både på klient, både på serveren.
>> Og hvis du vil dele af din JavaScript kode til at køre lige på klienten,
de har brug for at sikre, at du har en if-sætning, lidt ligesom hvad
vi har i vores JavaScript-fil her.
Så Meteor, hvis Det er kunden, så jeg
ønsker at definere en skabelon helper kaldet opgaver.
Hvad denne kode egentlig gør, er det siger, at der er
et objekt kaldet skabelon at Meteor giver.
Og vi kommer til at tilføje en hjælper.
Hjælpere er disse opgaver, disse ting som opgaver.
>> Du vil se, at hvis vi går tilbage til HTML-fil, vi kaldte hver på opgaver.
Opgaver er ikke defineret i HTML.
Det er defineret i JavaScript.
Og Meteor har brug for at vide, hvilke opgaver er når vi går ind i JavaScript her.
Opgaver er dette hjælper.
Helper, kan du tænke på den som en skabelon variabel.
Og hvad betyder opgaver gøre?
Tja, det returnerer en liste over værdier.
Fordi det er en liste, vi kan kalde hver i det.
Så det er derfor, vi kalder hver på opgaver.
Og nu har vi opgave.
>> Hvad opgave gøre?
Tja, det har denne pil her efter de krøllede parenteser.
Det betyder opgave er en skabelon.
Det er ikke en hjælper, ligesom det, vi lige har set.
Det er en skabelon, vi har defineret.
Og hvor har vi defineret det?
Vi har defineret det under lige her.
>> Alt denne skabelon gør er gør et element på listen, og det kalder tekst.
Nu tekst synes at være en hjælper, men jeg vil vise dig
at dette er faktisk stadig en data medlem af opgaver.
Når du ringer til hver, det går i datastrukturen en lille smule.
Ligesom foreach loop, det nu bare ser på det første element i vores formål.
Vi ser, at teksten er defineret her i vores objekt.
Så Meteor er smart at vide, at vi taler om denne tekst,
ikke hjælperen kaldet tekst.
Det bliver bare værdien af ​​denne tekst her og viser det som HTML,
og det er, hvordan de data går fra JavaScript til HTML.
>> Flytning på om det i dette eksempel vi hårdt kodet disse værdier.
Meteor gør to virkelig nice ting for os.
Udover den levende opdateringshastighed, som vi viste det lykkes også vores database.
Hvis du skulle arbejde med PHP, du havde til at konfigurere phpMyAdmin.
Du havde til at sikre din tabeller var alle i skak.
Du havde at gøre en masse arbejde at gøre at din data er formateret korrekt,
og PHP kunne kommunikere med den.
>> Nu bruger Meteor et nyt paradigme.
Dette er en mere moderne måde håndtere en database.
Det er en teknologi kaldet MongoDB.
Ligesom i JavaScript, så vi, at det ikke noget, hvilke typer data havde.
Alt var en var.
Det var ikke en charstar.
Det var ikke en int.
Det var ikke en struct.
Det var bare var det, var det.
>> MongoDB virker slags på samme måde.
Du behøver ikke at definere dine tabeller.
Du behøver ikke at sige en tabel har et navn, der har en int.
Det har, ved jeg ikke, en dollar, hvilket er en decimal.
Det er netop disse JavaScript objekter, alle disse Vars væsentlige.
Og det er en virkelig kraftfuld måde til prototype din app.
Og det er derfor, Meteor drager fordel af dette.
>> Hvis vi gå til trin tre, lad os se, hvad der er ændret.
Hvis vi ser på todos HTML, ikke meget.
CSS har ikke ændret på alle.
Men den lille ændring, vi ser i HTML er vi har ændret, hvordan opgaverne er defineret.
Opgaver er nu en funktion.
Det betyder, at hver gang vi ønsker at få opgaver,
vi kommer til at køre denne funktion.
Det behøver ikke returnere funktion som en værdi.
>> Meteor er smart at faktisk køre funktion til at se, hvad vi får ud.
Og det returnerer denne ting kaldet opgaver.
Vi har defineret opgaver på linje et, og det er en Mongo samling.
Mongo refererer til databasen Meteor bruger,
og denne nye bare betyder lad os gøre en ny kollektion, kalder det opgaver.
I MySQL, ville det svare til udkig efter tabellen kaldet opgaver.
Mongo har samlinger, ikke borde.
Så dette blot ser til opgaver.
>> Nu skabelon i vores hjælper i skabelonen, alle
vi skal gøre for at få alle de opgaver denne funktion, find
og denne tomme tandbøjle.
Det er mere især Mongo syntaks.
Der er masser af dokumentation online for hvordan
du kan lave en effektiv og virkelig nyttige Mongo forespørgsler.
Men sådan noget er godt nok til bare at finde alle data.
>> Nu et af de spørgsmål, du måtte se er, at vi faktisk aldrig tilføje data.
Så hvad sker der, når vi faktisk køre trin tre?
Lad os hurtigt gå ind trin tre og køre Meteor.
Bemærk, at jeg havde en anden Meteor projekt kører et andet sted,
så Meteor kan ikke lide det.
Jeg bare hurtigt tæt på den anden Meteor med Kontrol C,
gå i trin tre, og køre Meteor igen.
Bemærk det er begyndt MongoDB fordi MongoDB
er en del af hver Meteor projekt.
>> Så det siger min ansøgning har fejl.
Det er en nice feature Meteor har.
Det gør, at din HTML er godt valideret.
Lad os hurtigt se på, hvorfor det kunne være.
Det synes jeg har ved et uheld kopieres forkert HTML-kode.
Hvis jeg gemmer det nu, Meteor automatisk genstartet serveren,
og nu app kører som forventet.
Læg mærke til at løse dette, kan du bare køre den samme HTML-fil fra trin to,
kopiere det ind trin tre.
>> Vi kan gå tilbage til vores lokale vært.
Og nu ser vi, at vi har vores opgaveliste.
Store, men den er tom.
Vi har faktisk ikke har nogen opgaver i vores Mongo database.
Så lad os tale om en få måder, vi kan gøre det.
Hvis vi går tilbage til terminalen, vi kan lukke den og køre Meteor Mongo.
>> Hvis du er fortrolig med hvordan Meteor fungerer,
dette faktisk giver dig adgang til den fulde MongoDB for Meteor.
Bemærk at du skal køre Meteor først for at dette virker.
Så hvis jeg køre dette i en ny fane, jeg kan gå tilbage til den samme mappe.
Og nu Meteor fungerer fint.
Dette er en prompt.
Lad mig gøre det lidt større, så vi kan se.
Det ser en smule anderledes end hvad du kan anvendes til dig
ikke rigtig brug for at bruge Mongo.
Hele pointen med mig her er så du kan bruge JavaScript.
Men hvis du er nysgerrig, Den Mongo API ikke
bruger SQL, den Structured Query Language.
Det bruger sit eget sprog, som ser meget gerne JavaScript.
Meget hurtigt, kan vi finde tabellen via db.tasks.
Og det fortæller mig viser sig, hvis vi kører finder,
slags svarer til, hvad vi havde med Meteor, kan vi indlæse alle elementer.
Problemet er, har vi ikke rent faktisk har nogen opgaver, der er defineret.
Så det kan ikke få dem.
>> Vi kan indsætte, selv om.
Så vi kan køre insert med kommandoen insert.
Og vi bare give det et objekt, og vi bare
sørg for, at formatet er, hvad vi forventer.
Hvis vi så på trin to, Vi så, at enhver opgave
var et objekt med en tekst som nøgle og uanset
dit til at gøre punkt på dagsordenen var som en variabel.
Så vi kan gøre noget her.
>> Vi kan have det indsætte en opgave kaldte jeg kommer fra Mongo.
Og vi trykker på Enter, og det kører.
Vi kan køre finde igen, og vi se, at der er et objekt her.
Mongo tildeler det et id, som du har ikke rigtig brug for at bekymre sig om.
Hvad er vigtigt for dig, er de data, du lægger i, er de data, du får ud.
>> Lad os gå tilbage til vores hjemmeside, og hey, vores opgave indlæst.
Og du kan se, at fordi Meteor er meget smart
og altid opdaterer for dig, jeg behøvede ikke at røre siden.
Det indlæses automatisk.
>> Lad os køre noget kode i JavaScript selv at gøre dette.
Ligesom vi har Node i ryggen ende at udføre ud JavaScript,
Vi kan også køre JavaScript direkte i vores browsere.
Du kan gøre dette ved en funktion kaldet Undersøg Element.
Hvis jeg højreklikker på et sektion på siden,
der er en mulighed kaldet Undersøg Element.
Hvis du kører en browser som Safari, du
kan være nødvendigt at aktivere din udvikler værktøjer før du får denne funktion.
>> Hvad vi interesserer os, er konsollen.
Så vil vi bare gå til konsol nederst.
Nu kan vi køre en JavaScript her, ligesom JavaScript
filer, jeg viste i js eksempel.
Men lad os nu se på opgaver.
Vi kan køre vores kommando.
Og forhåbentlig vil jeg være i stand til at gøre det lidt større, så vi alle kan se.
>> Hvis vi kører tasks.find, og du vil se, at dette er den samme kode
at JavaScript fil bruger i trin tre, denne task.find.
Vi kan køre de samme ting, og nu vi får nogle underlige ting.
Hvordan får vi faktisk få data?
Nå, vi er nødt til at køre dette kommando kaldet hente.
>> Dette er meget nyttigt for fejlretning.
Hvad du får her er en markør, og det er
en pæn måde Meteor har optimerede Henter data.
Denne markør har alle de funktioner til levende opdatering og opdatere siden
når noget har ændret sig.
Men det vil ikke få os dataene.
Vi kan få dataene via hente.
Og du ser vi har et objekt, og det er ligesom det, vi havde i Mongo,
med et ID og den tekst, vi sætte i.
>> Så hvordan kan vi indsætter et element i Meteor?
Godt, vi bare har opgaver.
Og så kan vi køre samme Indsæt kommando,
giver en ordbog eller en genstand med det samme format, tekst
og så kommer jeg fra konsollen.
Tag et kig over for når jeg gøre dette, det dukker op på hjemmesiden
automatisk.
>> Bemærk at du kan sætte noget du ønsker i disse emner.
Det behøver ikke at have en fast struktur.
Jeg kunne have en svarende til nummer tre og b er lig med falsk.
Og det hele fungerer.
Jeg kan endda vælge ikke at indeholde en tekst overhovedet.
Dette er bare ikke anbefales men fordi så Meteor
vil ikke vide, hvad der skal vises.
Men i hvert tilfælde, vi få et ID, og ​​det er
ID på det objekt, du kan bruge.
>> Da vi fortsætter med trin fire og trin fem,
tutorial vil vise dig måder, du kan oprette UI elementer ved hjælp af
HTML du kender til skabe forskellige opgaver.
Lad os se på trin fire virkelig hurtigt.
Vi vil se, at vi har tilføjet et afsnit om begivenheder.
Skabeloner kan have hjælpere, der får os data.
Men det kan også ringe arrangementer.
Og det er her, kram bliver nyttige, fordi begivenheder
er, hvad der sker, når du klikker på forskellige ting på dit websted.
>> Her vores kode er at fortælle os til at tilføje denne begivenhed.
Tilføj det når du har indsendt noget med klassen nye opgave.
Hvad du har her er en CSS selector.
Så dette blot ser til en HTML element, der har klassen ny opgave.
Og det ser ud til arrangementet, ligesom indsende.
Andre begivenheder omfatter klik, hover, dobbeltklik,
svarer til, hvad du får i normal HTML.
>> Hvad du giver det her er nu en funktion.
Og du kan få din kode i denne funktion.
Denne funktion er, hvad ender med at få kaldes, når du indsender denne nye opgave.
Lad os se på HTML lige så vi forstå, hvad denne nye opgave er.
Vi har tilføjet en formular her med klasse ny opgave.
Og det har en indgang, der tager tekst.
Og det er her, vi vil tilføje vores nye opgaver.
>> Lad os køre trin fire i hjemmeside for at se, hvad det ser ud.
Vi kan afslutte først ud af MongoDB vi havde
fra vores tidligere eksempel med kontrol C.
Og lad os ændre det til trinnet fire bibliotek.
Vi vil køre Meteor igen at starte serveren.
Og desværre, jeg havde Meteor kører i en anden terminal.
Så jeg bare gå til at sikre dette lukket.
Lad os forlade denne og forandring til fjerde del, trin fire.
OK.
>> Nu er vores Meteor kode kører.
Og du kan se, at det opdateret, uden os selv at skulle opdatere siden.
Hvad har ændret sig her nu at vi ikke har nogen opgaver,
men vi har en formular her, dette tekstfelt, at tilføje vores nye opgaver.
Og vi kan skrive vores opgave her.
Jeg kommer fra HTML-siden.
Når jeg trykker på Enter, fik det forelagt.
>> Vi kan se, hvad der skete, da defineret af JavaScript-kode.
Hvad denne funktion gjorde var tage teksten fra formularen,
og så bare kaldt tasks.insert, som vi gjorde i konsollen.
De valgte også at tilføje en createdAt dato.
Dette er, hvordan du ville angive den aktuelle tid.
Efter dette, det rydder formularen ved at gøre Kontroller, at værdien er den tomme streng.
>> Og så kalder det return false til sørg intet andet sker.
Når du vender tilbage falsk fra en formular begivenhed, der stopper henrettelse.
Sig en form har en handling, ligesom forelægger en PHP side.
Hvis du ikke var vendt tilbage falsk, ville du returnere sandt.
Det ville ende med at gøre denne anmodning.
Falske aflytninger det og stopper det lige der.
>> Så det var lidt demo om hvordan Meteor virker, og vi har
fulgt tutorial i et stykke tid.
Og du kan du velkommen fri til at fortsætte med at gøre dette.
Der er masser af ressourcer, og tutorial er faktisk bare
meget godt om at forklare hvad der foregår.
Jeg ønsker at vise dig nu, i de få minutter, vi har tilbage,
hvad er nogle af de køligere funktioner Meteor,
og hvad er nogle af de flere nyttige pakker.
En af de gode ting ved Meteor er, at du har en pakke system.
Du kan nemt optage kode at mange tusinde udviklere
har skrevet på verdensplan ind i dit Meteor projekt.
Et eksempel på dette er, hvad du måske gøre i trin ni af tutorial, hvor
du forsøger at tilføje konti til din Meteor projekt.
Hvis vi har en CS50 PHP projekt, ville vi have
til at stole på rammerne eller vores egen kode for at gøre
sikker på, vi sikkert håndtere adgangskoder og brugernavne
og lagring af databasen og alt dette.
>> Det viser sig Meteor har nogle pakker til at gøre det for dig,
og til at gøre det meget nemt.
Det, vi kan gøre, er at tilføje et par pakker.
Så lad os gøre denne ret nu i vores konsol.
Jeg har tænkt mig at afslutte projektet og lige nu gå ind i simple-todos.
Nu, enkel-Todos er det projekt, som du
vil efter gøres med trin 11 eller trin 12,
i slutningen af ​​dette selvstudium.
Og lad os hurtigt se på det for at se hvad er de forskellige funktioner, vi har.
Lad os bare sørg for at det kører.
Nogle gange tager det et stykke tid at opdatere, men her er det.
>> Vi har vores mulighed for at skjule udføre opgaver, og vi kan logge ind.
Og det blev gjort med Meteor pakken.
Det er dejligt.
Vi har nu brugernavn og password tegn på.
Men hvad nu, hvis vi ønskede at tilføje en anden form for login mekanisme?
Lad os sige, jeg ønskede at logge i med min Meteor konto.
Jeg har tænkt mig at køre meteor add, og dette er syntaksen for at tilføje pakker.
Jeg kan sige konti og accounts.meteor.
Det kommer til at nu finde pakken og indlæse den.
Du kan se, at jeg har ikke fundet den rigtige pakkenavn.
>> Så hvordan kan du finde ud af om pakker?
Nå der er en stor hjemmeside, lavet rådighed af Meteor folk,
kaldet atmospherejs.com.
Atmospherejs, et ord, prik com, er en stor lager
til at finde alle de Meteor pakker i arkivet.
Jeg kan søge konti, og derefter det vil vise mig alle de relevante ting,
alle pakker med kontoens navn.
>> Mens der indlæses, kan vi prøve tilføje nogle andre pakker.
Måske Meteor pakken fungerer ikke lige nu, men jeg kan tilføje Facebook.
Jeg kan tilføje kontoen og derefter køre Meteor projektet igen.
Når dette begynder, lad os se hvad der er ændret på hjemmesiden.
Du kan see-- jeg måske nødt til at opdatere den her.
>> Jeg har en knap til konfigurere Facebook login.
Og her har jeg alle instruktionerne Meteor
har forberedt for dig for oprette en Facebook-app.
Og du kan bruge det oplysninger til at tilføje dine id'er.
Når det er gjort, vil du have Facebook login arbejder i din app.
>> Jeg bare at få en app-id og en hemmelighed,
bare for at vise dig, hvordan dette kunne arbejde.
Du skal bruge en Facebook-konto at bruge Facebook udvikler muligheder.
Lad mig blot hurtigt at finde det Meteor taster, der er nødvendige.
Jeg har en anden Meteor projekt at jeg har tænkt mig at bruge,
og jeg bare kommer til at tage nøgler fra den pågældende fil.
>> Og når jeg finder det, vil jeg bare være i stand at kopiere disse taster ind i min Facebook.
Så her er en nøgle.
Og det er hemmeligt.
Du skal ikke være dele dette med folk.
Og så giver det din app hemmelighed.
Og det er så Facebook kender du er dig.
Og du gemmer konfigurationen.
>> Jeg tror i den proces, jeg har stoppet min Meteor app.
Så jeg vil bare gøre sikker på det er der stadig.
OK, lad os sikre vores Meteor server kører så websiden kører.
Bemærk hvis vi stoppe Meteor server, siden er der stadig.
Det vil bare ikke opdatere længere.
Den Meteor serveren er nødvendig for at sikre, at siden er levende.
>> OK, jeg har sendt det, og nu Jeg kan logge på med Facebook.
Nu er det bare et spørgsmål om at have en Facebook-pop up
og sætte på din konto information og logge på.
Når du gør det, Facebook måske nag dig for nogle mere sikkerhed.
Så vi vil bare stoppe der.
Pointen er, at når du er færdig med det, vil du have Facebook login.
>> Meteor har en masse andre pakker også.
Du kan logge på med Google+.
Du kan logge ind med GitHub.
Du kan logge ind med Twitter.
Eller hvis du søger, vil du finde masser af andre ting
Ligesom Meetup, LinkedIn, og Meteor Developer.
Så Meteor Udvikler var pakke, jeg var på udkig efter.
meteor tilføje konti-meteor-udvikler.
I mellemtiden, jeg også ønsker at anbefale
nogle andre pakker til dine projekter.
Det kan vise sig nyttigt at omfatte jQuery pakken.
Dette giver dig mulighed for at bruge jQuery i dine kunder.
Du kunne bare gøre det med en linje, og Meteor vil sørge for du er ajour
på jQuery.
Jeg anbefaler også houston: admin.
>> Det er lidt ligesom en phpMyAdmin slags værktøj til din MongoDB.
Dette giver dig mulighed for at redigere dine data ganske let
uden at skulle gå til Mongo shell, ligesom jeg havde gjort tidligere i seminaret.
Så nu, at der kører, lad os køre Meteor igen og se hvad vi kan gøre.
>> Du bemærker, at tilføje nogle pakker kan have dem præsentere nogle advarsler.
Du behøver ikke at bekymre sig om det med Houston.
Så kan vi nu har mulighed for at konfigurere Meteor admin.
Og de giver dig retninger hvis du ønsker at indstille, at op.
>> Vi kan nu også gå til / admin.
Det er bragt til dig ved Houston pakke.
Og det er Meteor admin interface.
Du skal bare oprette en admin konto, som så.
Og hvis du opdaterer siden, kan du har nogle samlinger viser.
>> Det er et meget nyttigt redskab, og jeg stærkt anbefale det.
Du kan se, at fordi Houston gav nogle fejl,
Vi har ikke nogen samlinger viser op lige nu.
Den måde, du ville bruge Houston er sørg denne funktion får
hedder på dit simple-todos.
Så Houston ikke vide, hvad mine opgaver er.
>> Vi har oprettet en Mongo indsamling kaldet opgaver.
Lad os gå ind i enkel-todos og bare sørge for, at i JavaScript,
har vi tilføjet opgaver til vores kollektioner.
Vi har nu gemt, og det er at opbygge ansøgningen, forfriskende.
Og lad os se.
Nu har vi nogle opgaver.
Og vi kan tilføje nogle nye opgaver.
Men hvis vi ønsker at tilføje opgaver, lad os gøre det med den app selv.
>> Nu kan vi tilføje nogle data.
Hej, dette er en opgave.
Det virker lidt besynderligt, at vi ikke se nogen opgaver.
Vi vil måske kontrollere, hvis vi fik nogen fejl her, eller måske et andet sted.
Hvis vi går ind i admin, der synes mærkeligt.
Hvis du trækker lageret efter dette seminar,
Jeg vil sørge for, at simple-Todos arbejder med Houston.
Desværre ser det ikke ud til være at arbejde i dette øjeblik.
>> Er der andre spørgsmål?
Houston normalt er en værktøj, der fungerer godt.
Houston specifikt er en smule buggier end de andre,
men jeg anbefaler det, når det virker.
Ja.
>> Publikum: Hvad kan du gøre med Facebook-pakken
Når en bruger er logget i med deres Facebook?
>> ROGER ZURAWICKI: Når en brugers logget ind,
du kan foretage opkald til Facebook API.
En masse, der ligger mere i hvordan Facebook åbner deres API.
Meteor, skal du sørge har forbindelsen.
Men alt efter det er et spørgsmål om at lære at bruge Facebook API.
Publikum: [uhørligt].
ROGER ZURAWICKI: Okay.
Mange tak for denne CS50 seminar i Meteor.
Hvis du har spørgsmål, du kan e-maile mig
på min e-mail-adresse anført nedenfor seminaret.
Og jeg vil være glad for at besvare dine spørgsmål.
Jeg vil også være på CS50 hackathon bør
du brug for hjælp med dine Meteor projekter.
Tak for at se.