[Muziek] ROGER ZURAWICKI: Hoi, mijn naam is Roger Zurawicki, en ik zal worden met betrekking tot de CS50 Meteor seminar. Meteoor is een nieuw kader gewijd aan de nieuwe vorm van web, niet de PHP maken verzoeken heen en weer soort van web we zagen in de PHPP set, maar hoe meer dynamische JavaScript delen van het web. Dingen Meteor kan doen omvat Levende bijwerken en direct communiceren tussen gebruikers van dezelfde website. Voor dit seminar, hebben wij code gehost op mijn GitHub. U kunt naar deze URL en download het. Als je weet hoe je Git gebruiken, kunt u de repository klonen. Als je niet weet hoe te gebruiken Git of niet gebruikt GitHub, dat is helemaal prima. Ik zal je heel snel zien hoe kunnen we naar GitHub, en er is een optie om downloaden van een zip daar. Zodra u deze map downloaden, je aan de slag kunt spelen met onze code. Meer informatie over Meteor is te vinden op meteor.com. In de map Seminar, ik eigenlijk hebben een aantal Meteor projecten die we kunnen gebruiken. Een van de mappen die wij in ons seminar project is de todos app. Dus als ik in het I, hebben Meteor geïnstalleerd. Dus om het uit te voeren, ik moet gewoon typen Meteor, en Meteor zal installeren. Zoals u kunt zien, moeten we ervoor zorgen dat we geïnstalleerd Meteor. Dus ik ga gewoon lopen het nog een keer om ervoor te zorgen dat de meteoor goed is geïnstalleerd. Terwijl ik heb Meteor installeren, kan ik je laten zien enkele live demo's van Meteor websites gaan leven nu op het internet. Ik heb een demo van onze app. U kunt toegang krijgen op de volgende URL. Dit is het te doen app die we hebben in ons seminar directory. De URL hiervoor is rozu-rabbit.meteor.com. Je zult zien dat de meteoor ook daadwerkelijk hosten van uw Meteor projecten gratis. En aan het eind van het seminar, je zult in staat zijn om dit te doen ook. Dit is een to do list app. En je kunt aanmelden, maken rekeningen, en taken toe te voegen. U kunt een account aanmaken zoals zo. En nu, als je eenmaal een account kunt u taken toevoegen. Bijvoorbeeld, een van de taken I Misschien moet gaan halen mijn wasgoed. En als je op deze site online, zult u eigenlijk zien deze taak op uw computer in real time. Ik kan je een snelle demo deze door het openen Rozu-konijn in een ander tabblad met dezelfde URL. En we zien dat dezelfde gegevens komt. We kunnen het ook in een andere browser. Zeg ik voer het uit in Safari. Op die manier zijn we niet ingelogd. Dus we hebben dezelfde Meteor app, en als het eenmaal geladen, we zullen dezelfde gegevens te zien we deden in de eerste. Zoals je kunt zien, ben ik niet ingelogd hier. En wanneer het publiek controles data, Het werkt op alle browsers gelijktijdig. Dit is een van de werkelijk coole functies over Meteor. Met bijna geen werk, je hebben een live updating app dat veranderingen op al uw apparaten tegelijk. Als ik kijk het selectievakje hier in mijn to do lijst, zullen wij, in mijn andere Chrome-browser, het item afgevinkt. En dit gebeurt onmiddellijk. Prima. Dus het lijkt erop Meteor installatie is nu klaar. Dus laten we nu teruggaan naar de todos app en voer deze lokaal. Als je een Meteor project, kunt u gewoon voer het uit met het commando Meteor. Zodra u dit doet, Meteor zal enige voorbereiding te doen om ervoor te zorgen dat alle uw code is onder controle. En dan zal het u vertellen dat de project is klaar om te worden geserveerd. Mogelijk moet u toestaan ​​dat uw firewall, als uw computer blokkeert u. Dus wat Meteor is me te vertellen op dit moment is dat op deze website lokaal naar mijn computer, kan ik zien wat dit Meteor project is. Merk op dat op dit moment, mijn app is niet toegankelijk is voor het internet. Wat we laten zien hoe u uw Meteor brengen app om een ​​live site een beetje later. Dus ik ga gewoon deze te kopiëren URL nu en ga naar Google Chrome. En dit is het te doen lijst van het voorbeeld. Je kunt zien dat ze geïmplementeerd nog een paar functies hier. We hebben verschillende tabs, we dezelfde accountfuncties, en we kunnen nieuwe lijsten toevoegen. Nu, een van de echt leuke functie over Meteor is dat niet alleen kan deze werken aan uw webbrowser, maar u kunt ook inheemse iPhone en Android apps via een tool genaamd PhoneGap. Dus sommige projecten zal komen vooraf geconfigureerd voor running op iOS, zoals deze todos app. Dus alles wat ik moet doen om het uit te voeren in iOS wordt het type Meteor, draaien, en dan iOS. En toen ik dat, Meteor doen zal het pakket opnieuw te bereiden. En dan, als het eenmaal klaar is, zal het laadt de iOS-simulator op mijn bevel. Opmerking u alleen kan draaien iOS-apps als je een Mac-computer. U kunt uw apps draaien op Android op alle platformen. Dus nu kun je zien dat mijn iPhone simulator kwam op mijn scherm. En in slechts een moment, het zal laden met de app. Als we maken het gewoon een beetje kleiner op het scherm past, we zien hebben we onze iPhone app. En gewoon zo doen we niet in de war raken, laten we ervoor dat we op dezelfde website, de lokale host 3000. Dus hier is een voorbeeld van de Meteor app die ik heb, de todos app, draait zowel op een telefoon en op een web browser. En toen ik veranderen stuff in de webbrowser, gaat onmiddellijk naar de telefoon. En ik kan er iets aan de telefoon te wissen, en verandert in de webbrowser. Nu, normaal gesproken om native te creëren telefoon app voor iOS of Android, je nodig hebt om ofwel Java of weten Objective C. De technologie Meteor toepassingen toestaan ​​JavaScript uit te voeren als uw app heet PhoneGap. Wat uw app in wezen is is een webbrowser. En Meteor behandelt alle de lastige delen die zijn betrokken voor het instellen van die webbrowser uw iPhone of je Android toestel. Je kunt zien dat de gebruikersinterface is glad, en het ziet en voelt zeer net als een native app. Merk op dat als ik naar het huis scherm nu, krijg ik ook een icoon. Dit is niet een website als je zou vinden in Safari. Dit is zijn eigen app. U kunt installeren en verwijderen als je wilt. We kunnen in het kort laten zien wat de code voor dit soort todos app eruit ziet. Als je kijkt in de map todos, je zult zien zijn er veel mappen. Maar in de loop van het seminar, zullen we begrijpen wat elke map wordt gebruikt voor. Laten we naar de terminal, zodat we kunnen de bestanden te zien een beetje beter. Ik ga op Control C naar de server te stoppen, en nu ben ik terug in de todos app. Ik heb verschillende mappen hier, net als de map client, de map server. En deze mappen gewoon betekenen dat alles in de map client wordt uitgevoerd op uw web-browser. Alles in een server map wordt uitgevoerd op een server. Wat ik wil wijzen out is dat wat we hadden toen we onze telefoon lopen en onze web-browser, dit waren cliënten. Maar wat is uitgevoerd in een terminal, dat is de server. We hebben andere mappen, zoals lib, dat is de bibliotheek code, als uw helper functies, die u kunt te gebruiken op zowel de client en de server. En dan heb je een publiek folder en middelen folder noodzakelijk voor het krijgen uw afbeeldingen en andere CSS geladen. Als u Meteor hebt geïnstalleerd, zullen we verder met de tutorial voor Meteor. U kunt naar deze URL, meteor.com/install, aan de opdrachtregel te krijgen dat ik toonde u dat Meteor installeert. We gaan via de eerste paar stappen naar een beter voelen over hoe u Meteor installeren. Maar eerst, ik vind het belangrijk dat we een beetje van JavaScript herzien. Om u enkele voorbeelden van hoe tonen onze kennis van C kan worden vertaald JavaScript, ik heb creëerde een paar voorbeelden. Ze zijn in de js directory. Dus als aan de seminars map die u kijk, er is een map met de naam js. En hier hebben we een paar voorbeelden. Laten we het openstellen van de eerste voorbeeld en zie heel snel. Wat we zien is uw standaard hallo wereld commando. Je merkt in C dat u hebben nogal een paar regels. En als CS50 studenten weten, we een belangrijke functie, en we moeten de standaard omvatten I / O-bibliotheek om printf noemen. Laten we eens kijken hoe JavaScript vergelijkt. Ik ga ex1.js. openen Uitgecommentarieerd is wat de C-code eruit zou zien, en de volgende lijn is alles je nodig hebt om te draaien in Node. U hoeft niet een belangrijke functie nodig hebt, je niet nodig om alle bestanden bevatten, en je hoeft niet terug te keren. Je belt gewoon console.log. Dit is het equivalent van uw printf. En het hetzelfde kost argumenten printf zou doen. En om het uit te voeren, in plaats van het runnen van maken EX1, zou je gewoon bellen Node ex1.js. Je schrijft Node en daarna het bestand, en het wordt gerund. Wordt het niet gecompileerd. JavaScript is een geïnterpreteerde taal. Het maakt dus niet te worden gecompileerd voordat het wordt uitgevoerd. Als ik wilde ex1.c draaien, Ik moet het eerst te maken, en dan kan ik het programma te starten om dezelfde output te krijgen. Laten we snel een aantal dekken andere JavaScript concepten. Laten we eens kijken naar bijvoorbeeld twee. In ex2.js, in ex2.c, we kunnen zien dat we een stukje code. Laat me snel naar een betere teksteditor die deze tonen nieuwe lijnen een beetje beter. Prima. Hier hebben we bijvoorbeeld 2.c. Hier hebben we verschillende types dat we uit te printen. En zoals we weten, printf neemt verschillende procent argumenten om verschillende stukken gegevens. Als we willen afdrukken een string, noemen we% s. Als we willen een drijvende bellen punt nummer, we noemden% f. En er is geen gemakkelijke manier om te bellen een Boolean door zijn waar of onwaar waarde. Maar als je% d gebruikt, kunt u krijgen een 0 of een 1 voor valse en ware. JavaScript is een beetje mooier voor ons. In JavaScript, laten we eens kijken naar de paar verschillen die we hebben in dit bestand. Ten eerste, u merken dat we in C moeten initialiseren elke variabele met een type. S is een char ster. Het is een string, en kan een ander type zijn. N is een vlotter. B is een Bool. Maar in JavaScript, er dynamische types. Dat betekent dat je niet moet JavaScript vertellen welke soorten variabelen zullen zijn. Je zegt gewoon var voor variabele, de naam van de variabele, en dan zijn waarde. Dus een var kan alles echt zijn. Het kan een string zijn. Het kan een floating point getal zijn. Het kan een teken zijn. Het kan een Booleaanse. En console log werkt een beetje anders. Als u wilt afdrukken een nummer, bel je% d. Maar de meeste waarden kunnen afgedrukt als strings prima. Laten we draaien deze in Node om te zien wat er zou gebeuren. Ik kan Node ex2.js noemen, en we krijgen printf met de waarden CS50, N als de floating point getal, en vervolgens op b als de Booleaanse geconverteerd naar een string waar. Hoe zit het als we bijvoorbeeld 2.c? Nou, we hebben nog wat meer ergernissen met printf. Merk op dat de floating point getal te kunnen worden opgemaakt, en dat de Booleaanse kan niet alleen worden weergegeven als waar of onwaar. Prima. Laten we nu eens kijken naar bijvoorbeeld drie. In voorbeeld drie, laten we zien hoe je een zou gebruiken voor lus. In feite is het heel simpel. Een van de leuke dingen over Javascript is dat het C gebaseerd. Dit betekent dat veel van code zal erg lijken en voel me erg veel hetzelfde. In een lus, het enige wat dat is hier echt veranderd is in plaats van int i, hebben we var i. We kunnen nog steeds toewijzen aan waarderen nul is, controleer dan of is het minder dan vijf, en verhogen door een met de operator ++. We noemen console.log op i, en dat zullen wij het afdrukken van een aantal met elke lijn. Laten we draaien het echt snel om te zien wat deze luidspreker. We krijgen een nieuw nummer in elke lijn. Een ander ding dat ik wil dat je te merken met console.log is dat je niet hoeft te schrijven backslash n voor de nieuwe lijn. Console.log zal afdrukken alles op zijn eigen lijn. Dat is een leuke feature dat JavaScript geeft ons. Laten we nu eens open te stellen bijvoorbeeld vier. In voorbeeld vier, eerst in de C, We roepen een paar functies. Merk op dat we het te verklaren functies voordat we ze gebruiken in de belangrijkste. Als we de belangrijkste eerste en voeg dan en dan hoog, te maken, Clang, of GCC zou geven ons een fout zeggend dat hij niet weet wat hoog is. Het weet niet wat toe te voegen is. Dus in C, heb je kieskeurig over de te volgorde waarin u uw functies aan te roepen. Laten we eens kijken naar hoe je kunt doe dit in JavaScript. We hebben verschillende bestanden omdat zijn een paar verschillende manieren om dit te doen. Een manier is vrij veel een directe vertaling. Omdat functies C return typen, en JavaScript weet niet echt of zorg over welk type je terug, je niet schrijven type. In plaats daarvan, je hoeft alleen maar functioneren schrijven, en alles is vrij hetzelfde als voorheen. Wanneer u een variabele, zoals in toe te voegen, we hoeven alleen maar x en y te schrijven. We hoeven niet te zeggen dat x een int. We hoeven niet te zeggen dat y een int. We keren terug met dezelfde syntax. Voor hoge, verklaren wij het met functioneren in plaats van leegte. Merk op dat de vraag of het is nietig of niet-leegte, het is nog steeds alle dezelfde functie. En we gewoon niet zet iets haakjes en het lijkt erg veel op de C-code. En hieronder, we kunnen het hieronder noemen. Als we kijken naar bijvoorbeeld 4b, merken we dat ik een paar dingen heb veranderd. Het enige wat ik heb veranderd echt al is de orde. We hebben dezelfde functies, maar nu zijn ze verklaard nadat ze zijn gebruikt in console.log en hoog op de lijnen 18, 19. Als je dit gedaan hebt in C, maken zou een fout te gooien. Hier, dit werkt prima. En ik kan het je laten zien door roepen Node op 4b voorbeeld. Een andere manier kunnen we functies aanroepen is door het opslaan van functies als variabelen. Zoals ik al zei, een variabele kan elk type hebben. Eén van de typen een variabele hebben een functie. Dus als je kijkt naar bijvoorbeeld 4c, wat ik heb veranderd hier is var toe in plaats van de functie add. En nu toe is gelijk aan een functie. Deze functie is hier anoniem. Het heeft geen naam, dus het is gewoon functie en dan de haakjes. De syntax daarna verandert niet, maar u hebben om in gedachten te houden dat je hebt een variabele die je bent opslaan van de functie van add, en een variabele die je opslaan in een hogere. Omdat toevoegen en hoog zijn nu variabelen en niet functioneert, verandert er iets. Dit is een veel voorkomende fout die ik zie in veel JavaScripts van mensen, en iets om in het achterhoofd te houden. Toen ik dit lopen, laten we eens zien wat er gebeurt. Ik krijg een foutmelding. Het zegt undefined op dit punt. Dus het zegt het weet niet wat toe te voegen is. Want nu toe is geen functie, voeg een variabele. En je hebt eigenlijk niet gegeven Voeg nog een waarde wanneer je het gebruikt. Dat brengt ons bij voorbeeld 4d, waar als u wilt variabelen gebruiken als functies, je hoeft alleen maar te zorgen dat ze krijgen de waarde voordat ze worden gebruikt. Laten we overgaan tot bijvoorbeeld vijf dan. Hier praten we over structuren in C. In C, structuren hebben dit vaste structuur hen want je hebt om ze te verklaren voordat je het gebruikt, en je zeggen dat ik een student, en elke student heeft precies één naam, één jaar, één geslacht. Het heeft om ze allemaal te hebben. Het kan geen andere waarden, en ze moeten bepaalde types. Dan kunnen we initialiseren van de struct in deze mooie syntaxis omdat kent de bestelling. Zodat het weet dat Roger is een naam. Het weet dat 2016 een jaar en M is een gender omdat we het op deze vertelden lijst is een struct student. En dan kunt u afdrukken het, toegang s.name. Laten we eens kijken hoe we zouden zetten dat JavaScript. Merk op dat s is nu een variabele, en er is geen type. Het is gewoon een var opnieuw. Omdat het niet uit of de type van het variabele een pointer, het is een structuur, of iets anders. We hebben een iets andere syntax. Deze syntax is het object syntax. Je zou het moeten zien in JSON. JSON staat eigenlijk voor de JavaScript Object Notation. Dit is hoe je definiëren objecten in JavaScript. We hebben een sleutel, die is de waarde, zoals naam. En we geven waarden op de andere zijde van het colon. En één ding in gedachten te houden is dat je niet nodig om een ​​naam en een jaar hebben en een gender voor een object. Een object kan geen waarden. Het kan zoveel als u wilt hebben. We kunnen deze objecten gebruiken in slechts de dezelfde manier zouden we een structuur te gebruiken, s.name. We kunnen het echt snel te draaien door het doen van knooppunt bijvoorbeeld 5.c. We kunnen eigenlijk niet uitvoeren van een C-bestand in Node. Het weet niet wat C is. Het kent alleen JavaScript. Toen we lopen het ex5.js, krijgen we de waarde die we verwachten. Laten we overgaan tot bijvoorbeeld zes. Hier Ik wil gewoon een beetje praten iets meer over JavaScript arrays omdat ze een beetje anders dan wat je bent gebruikt om in C. Arrays worden genoteerd, niet de bandbreedtes zoals in C, met de accolades, maar haken. U kunt een lege array, zoals arr in lijn vier. U kunt arrays met meerdere waarden. En dat je ze op precies dezelfde manier in C. Tot lijn zeven, alles lijkt vrij eenvoudig. Een klein verschil is hier op lijn 10. De manier waarop een lengte van een krijg je array is gewoon door te bellen gunstiger prijs, krijg. Een array kan eigenlijk behandeld als een object, en dit object heeft een lengte woning dat u opnemen om de lengte van het te krijgen. Merk op dat dit verschilt in C omdat in C u moet de lengte van kennen het object van tevoren. Dus nog een leuke van arrays is dat u verschillende types hebben. Als u een array in C, is er arrays van een specifieke waarde, ofwel een struct pointer of drijft of [onverstaanbaar]. Hier kunt u verschillende waarden hebben. Ik had eerst een floating point getal, vervolgens een Booleaanse, dan een ander getal. En inderdaad, ze kunnen typen te veranderen. Kijk naar lijn 16. Array twee verandert van een getal, een geheel getal, een tekenreeks. Een ander leuk ding over arrays is hier op lijn 19, ze hebben oneindige grootte. Je kunt gewoon zeggen dat ik wil dat de honderdste element om de string legit. En dit lijkt niet te maken logisch omdat de array alleen heeft ruimte voor drie elementen, dus het einde moet twee. Maar als je dit doet, laten we zien wat scala drie wordt. We zouden deze snel leeg met knooppunt bijvoorbeeld six.js. We krijgen dit echt lang array en wat gebeurt is hebben we de eerste paar elementen en dan een bos van blanks totdat we onze string. JavaScript vult de toegerust, als het nodig is. Laten we eindelijk naar onze laatste voorbeeld. Hier hebben we een lijst van verschillende studenten. Ik wil een beetje praten beetje over een aantal leuke aspecten van lussen in JavaScript. In C, voor het loops zijn soort beperkt. Ze hebben een vaste structuur, waar u hebben een variabel, u een aandoening heeft, en dan moet je iets doen aan het einde van de lus. En natuurlijk werkt dit in JavaScript, zoals we zagen in de vorige voorbeelden. Maar we hebben ook mooiere manieren dit doen in JavaScript. Dit heet een foreach lus. Sorry, laten we terug gaan voorbeeld zeven in. We kunnen ook zeggen sectie is een lijst. Dus geef me elke i of elke index in die lijst. Dan kunnen we de student te krijgen door gewoon te bellen sectie van i. Dus alle code van de instelling i gelijk aan nul en ervoor zorgen dat i kleiner is dan de lengte toevoegen van een i telkens, dat het verzorgen van je liever mooi met deze foreach lus. Niet alleen foreach loops werken in lijsten of arrays, ze werken ook in objecten, dat is ook leuk. U kunt de naam van krijgen elke eigenschap door gewoon het nemen van een woordenboek of een object, zoals studenten, en dan gewoon te zeggen geef me elke toets. Een belangrijk zouden dit eigenschappen, naam of huis. Dus wat er gaat gebeuren hier is dat we uitprinten eerst de naam en vervolgens het huis van elke student. Ik kan deze draaien in Node heel snel om te laten zien. We krijgen eerst de C-stijl voor lus, waar we krijgen elk object dat wordt afgedrukt. En dan hebben we de JavaScript stijl, waar u kunt gewoon uitprinten elke sleutel en de waarde van individueel. Prima. Nu we hebben behandeld Node.js, denk ik we zijn klaar om te beginnen met Meteor. Zoals ik al zei, Meteor heeft een geweldige job van het schrijven van een aantal kant en klare voorbeelden voor u dat u kunt verkennen door middel van deze tutorial of in de map seminar. Maar hier wil ik beginnen meer vanaf nul. Laten we een eenvoudig toepassing te doen. Dit soort van de basis van wat de doen applicatie heb ik laten zien dat eerder is. In deze tutorial, je zal zien dat er een commando Meteor creëren om maak een nieuw Meteor project. Je nodig hebt om dit te roepen om Meteor projecten, omdat het uit te voeren zullen de opdrachten uit te voeren naar de Meteor creëren bestanden die nodig zijn voor uw project. Als je in de terminal, we kunnen ga naar de map met de naam stap één. En stap één zal overeenkomen met de eerste stap in de tutorial. Opmerking Er zijn folders, stap een stap twee, tot aan vijf. En elk correspondeert om een ​​stap in deze tutorial. Ik ga om het te openen hier in mijn tekstverwerker zodat we een beetje van wat er gemaakt kan zien. We merken dat er zijn vier grote delen. Er is een Meteor directory, .meteor. En dat je meestal niet hoeft aan te raken. Meteor verzorgt die map, en het gewoon zorgt ervoor dat uw project zal correct werken. We hebben ook drie bestanden, een HTML-bestand, een JavaScript-bestand en een CSS-bestand. Laten we eerst beginnen met het HTML-bestand. Op het eerste gezicht lijkt dit als een normale HTML-document. Maar merk op dat er zijn een paar verschillen. Eén, dit niet echt een complete HTML-document. We missen de HTML-tags. Dit is normaal. In Meteor, je bent niet verwacht om deze HTML-tags te maken. Dat is voor u gedaan. U wilt begin-- als u willen een website te maken, je hoeft alleen maar om te beginnen met het hoofd tag, bepalen dat, en dan definiëren de body-tag. Maar als je merkt in dit HTML-bestand, hebben we een nieuwe tag. Wij hebben de template tag. Dit is niet normaal HTML. Dit is een speciale versie van HTML dat Meteor maakt voor u beschikbaar. Het heet ruimte bars. U kunt sjablonen zo weinig te definiëren modules, net zoiets als helper functies, in uw C of JavaScript-code. Deze sjabloon zou hebben een naam genoemd taak. En je kunt hier zien op de lijn 13 dat u kunt deze sjablonen noemen. En wat Meteor zal doen is gewoon in deze taken voor u invullen. Een ander ding dat je zou kunnen opmerken is een beetje anders is dit elke functie. Elk van hen zal de variabele nemen taken en de aard van de door het gaan in dat foreach lus wij zag in bijvoorbeeld zeven. Deze kunnen elk een woordenboek te nemen of een lijst, een object of een lijst, en het zal alleen maar gaan door alle van de waarden als een foreach lus zou doen. Dus als we een heleboel taken, dit de sjabloon op elke taak noemen. Laten we lopen het Meteor project gewoon om te zien dat dit gebeurt. Ik ren de Meteor project met gewoon Meteor of Meteor draaien. En nu Meteor gewoon zal moeten om het project snel te bereiden, start de database nodig, en dan post de app lokaal. We kunnen nu naar onze web browser. En we zullen zien dat we een zeer eenvoudige applicatie. Dus wat we zagen opdagen was eigenlijk de eerste stap, de stap één bestand. Laten we verder gaan met stap twee alleen omdat Ik denk dat het zal hetzelfde doel dienen. Ik ga gewoon om te veranderen om de stap twee directory en voer Meteor weer zodat we kunnen zien de sjabloon we gewoon gewerkt. Ja, een vraag? Publiek: Als we krijgen toestemming ontkend, is dat-- wat is het riep voor dat? ROGER ZURAWICKI: Als je draait Meteor run, en je toestemming hebt ontkend, sommige van uw bestanden misschien niet de juiste toestemming set. Dus je moet controleren waar de toestemmingen zijn uitgeschakeld. Zij konden off in uw Meteor project, of ze kunnen weg in de te Meteor-bestanden zelf. Publiek: Als ik gedownload het nu net uit je GitHub, dan wat moet ik doen [Onverstaanbaar]? ROGER ZURAWICKI: Als u wilt om te controleren of u toegang hebt, er is een opdracht die u kunt uitvoeren. Laat me snel schrijf het uit zodat andere mensen het kunnen zien. Ik ga een nieuw tabblad hier openen en ga in mijn seminar map. Chmod is het commando om machtigingen te wijzigen, en je kunt r zeggen voor het doen recursief voor elk bestand. En machtigingen, kunt u proberen 0755 om ervoor te zorgen dat u volledige toegang, en iedereen kan lezen. En als je gewoon lopen deze opdracht, zal het goedmaken ervoor dat de permissies zijn in kijk voor de hele map. Hardlopen ls-l kunt u de toestemmingen in meer detail. Dit ziet er goed uit. Wat het meest belangrijk is dat u alle drie rwx voor alle bestanden in het seminar directory. Wist dat het probleem op te lossen? Publiek: Het zegt ontbrekende operante [onverstaanbaar]. [Onverstaanbaar] ROGER ZURAWICKI: U moet ervoor zorgen dat u hebben een punt aan het einde van uw opdracht. Publiek: [onverstaanbaar]. ROGER ZURAWICKI: Oké. Laten we snel terug te gaan naar de lokale host, de app die we hebben. En je zult zien dat we een enkele taken hier, zoals verwacht. We hebben een heleboel CSS, waarvan je hoeft geen zorgen te maken over. De Meteor zelfstudie alleen geeft deze aan u om je te maken te doen lijst uiterlijk een beetje mooier dan de gewone HTML. En we hebben het JavaScript-bestand, dat Ik zal een beetje later meer in detail te gaan, maar het gewoon biedt deze taken. Dit is de taak van één. Dit is de taak van twee. Dit is de taak van de drie. Dus dit is de gegevens Meteor's krijgen. Een van de leuke dingen over Meteor is dat wijzigingen automatisch kan gebeuren. Als ik wilde het veranderen de naam van de eerste taak, dus het zou zeggen dat dit niet taak, en ik sla het op, dan wanneer ik naar het web browser, kunt u het vernieuwen, en het zegt automatisch dit is niet de taak van één. U kunt hetzelfde doen in deze bestanden. Maak een verandering, in plaats van te doen lijst, zal ik het op mijn to do list. En een ding dat je gewoon opgevallen, dat ik had niet eens op te frissen. Het idee van verfrissende is een soort van de voor u opgelost met Meteor. Wanneer het bestand veranderingen detecteert, het zal de veranderingen te laden voor u. Dit werkt op alle bestanden, of het is HTML, CSS of JavaScript. Om te laten zien wat deze app zou kijken als zonder CSS, kan ik het allemaal te verwijderen. En als het herladen, je hebt nu een niet zo mooi uitziende to do list. Laten we die inhoud terug. En zeker genoeg, het verfrist, en onze CSS is terug. Grote. We kunnen nu verder met de tutorial. Laten we praten over stap twee, sjablonen. Dit is wat we net zagen de verschillende taken. Meteor zal u uitleggen wat templates en hoe deze logica werkt. Maar laten we gewoon kijken naar de code kijken of we zin kan van te maken. In zeer eenvoudige toepassingen, zoals wat we hebben in de eenvoudige doen, stap één, stap twee stappen drie, stap vier, stap vijf, we geen mappen. We niet de server hebben folder die ik noemde. We hebben niet de cliënt map die werd genoemd. Dus Meteor worden alle bestanden uit te voeren. Het zal het zowel draaien op de client, zowel op de server. En als je wilt delen van je JavaScript code kan worden uitgevoerd alleen op de client, ze nodig hebben om ervoor te zorgen dat u een if-statement, net zoiets als wat we hebben in ons JavaScript-bestand hier. Dus Meteor, alleen als het is de klant, dan moet ik een sjabloon wilt definiëren helper genoemd taken. Wat deze code echt doet is het zegt dat er een object met de naam sjabloon dat Meteor biedt. En we gaan naar een helper voegen. Helpers zijn deze taken, deze dingen, zoals de taken. Je zult zien dat als we terug gaan naar de HTML-bestand, we noemden elkaar op taken. Taken wordt niet gedefinieerd in de HTML. Het is gedefinieerd in het JavaScript. En Meteor moet weten welke taken is wanneer gaan we de JavaScript hier. Taken is dit helper. Helper, kunt u denken aan als sjabloon variabel. En wat doet taken te doen? Nou, het geeft de lijst met waarden. Want het is een lijst, kunnen we elk gesprek in. Dus dat is de reden waarom elke roepen we taken. En nu hebben we de taak. Wat doet taak te doen? Nou, het heeft deze pijl hier na de accolades. Dat betekent taak een sjabloon. Het is niet een helper, zoals wat we net zagen. Het is een sjabloon die we hebben gedefinieerd. En waar hebben we gedefinieerd het? We hebben het hieronder omschreven hier. Alle deze sjabloon maakt is de render een item in de lijst, en het roept tekst. Nu, tekst lijkt te zijn een helper, maar ik zal je laten zien dat dit eigenlijk nog steeds een data-lid van taken. Wanneer u elk gesprek, het gaat in de datastructuur een beetje. Net als de foreach lus, is het nu net lijkt het eerste element in ons object. We zien dat de tekst is hier gedefinieerd in onze object. Dus Meteor is slim om te weten dat we praten over deze tekst, niet de helper genoemd tekst. Het wordt steeds de waarde van deze tekst hier en geeft dit als HTML, en dat is hoe de gegevens gaat van de JavaScript om de HTML. Doorstroming echter in dit voorbeeld we hard gecodeerd die waarden. Meteor doet twee echt leuke dingen voor ons. Naast de live-refresh dat we vertoonden, zij beheert ook onze database. Als je moest werken met PHP, je moest phpMyAdmin te configureren. Je moest ervoor zorgen dat uw tafels waren allemaal onder controle. Je moest een hoop werk te doen om ervoor te ervoor dat uw gegevens correct is geformatteerd, en PHP kan ermee communiceren. Nu, Meteor maakt gebruik van een nieuw paradigma. Dit is een meer moderne manier de behandeling van een database. Het is een technologie genaamd MongoDB. Net als in JavaScript, dat zagen we maakte niet uit welke soorten de gegevens had. Alles was een var. Het was geen charstar. Het was niet een int. Het was geen structuur. Het was gewoon var dit, var dat. MongoDB werkt soort op dezelfde manier. Je hoeft niet om uw tabellen te definiëren. Je hoeft niet om een ​​tafel te zeggen heeft een naam, die een int heeft. Het heeft, weet ik niet, een dollar, dat is een decimaal. Het is gewoon deze JavaScript-objecten, al deze vars, wezen. En dit is een echt krachtig manier om uw app prototype. En dat is waarom Meteor maakt gebruik van deze. Als we naar stap drie, laten we eens zien wat er veranderd is. Als we kijken naar de todos HTML, niet veel. CSS is niet veranderd. Maar de kleine verandering zien we in HTML is we hebben veranderd hoe de taken wordt gedefinieerd. Taken is nu een functie. Dat betekent dat elke keer willen we taken krijgen, we gaan om deze functie uit te voeren. Het komt niet terug de functie als een waarde. Meteor is slim om daadwerkelijk lopen de functie om te zien wat we krijgen. En het keert dit ding heet taken. We hebben gedefinieerde taken op lijn één, en het is een Mongo collectie. Mongo verwijst naar database Meteor gebruikt, en deze nieuwe betekent gewoon laten maken een nieuwe collectie, noem het taken. In MySQL, zou dit gelijk te zijn op zoek naar de tabel met de naam taken. Mongo heeft collecties, geen tabellen. Dus dit ziet er gewoon voor taken. Nu, sjabloon in onze helper in de matrijs, alle we moeten doen om alle te krijgen taken wordt deze functie, vindt en dit lege brace. Dit is bijzonder Mongo syntax. Er is genoeg documentatie online hoe kunt u efficiënter te maken en echt nuttig Mongo queries. Maar zoiets als dit is goed genoeg voor alleen het vinden van alle data. Nu, een van de problemen die je zou kunnen zien is dat we eigenlijk nooit gegevens toe te voegen. Dus wat gebeurt er als we eigenlijk stap drie lopen? Laten we snel gaan in stap drie en uitvoeren Meteor. Merk op dat ik had een andere Meteor project loopt ergens anders, dus Meteor houdt niet van dat. Ik ga gewoon om snel te dicht bij de andere Meteor met Controle C, ga naar stap drie, en lopen weer Meteor. Merkt het begint MongoDB omdat MongoDB is een onderdeel van elk Meteor project. Dus het zegt mijn aanvraag heeft fouten. Dat is een leuke feature Meteor heeft. Het zorgt ervoor dat uw HTML is goed gevalideerd. Laten we snel kijken naar de redenen waarom dit zou kunnen zijn. Het lijkt erop dat ik per ongeluk kopieerde de verkeerde HTML-code. Als ik sla het nu, Meteor automatisch herstart de server, en nu is de app loopt zoals verwacht. Merkt dit op te lossen, kun je gewoon hetzelfde HTML bestand van stap twee, kopieer het in stap drie. We kunnen terug te gaan naar onze lokale host. En nu zien we dat we onze to do list. Geweldig, maar het is leeg. We hebben eigenlijk geen taken in onze Mongo database. Dus laten we praten over een weinige manieren waarop we kunnen dat doen. Als we teruggaan naar de terminal, we kan te sluiten en uit te voeren Meteor Mongo. Als je bekend bent met hoe Meteor werkt, Dit geeft u eigenlijk de toegang om de volledige MongoDB voor Meteor. Merk op dat je hoeft te draaien Meteoor eerste om dit te laten werken. Dus als ik dit in een nieuw tabblad, ik kunt terug gaan naar dezelfde directory. En nu Meteor werkt prima. Dit is een vraag. Laat me het een beetje groter zodat we kunnen zien. Dit ziet er een beetje anders dan wat je zou kunnen worden gebruikt om u te niet echt nodig om Mongo gebruiken. Het hele punt van mij is hier zodat u JavaScript kunt gebruiken. Maar als je nieuwsgierig bent, de Mongo API niet Gebruik SQL, de Structured Query Language. Het maakt gebruik van de eigen taal die lijkt veel op JavaScript. Heel snel, we kunnen vinden de tafel via db.tasks. En het is me te vertellen blijkt als we lopen te vinden, soort vergelijkbaar met wat we hadden met Meteoor, kunnen we alle elementen te laden. Het probleem is, we doen niet eigenlijk geen gedefinieerde taken. Dus het kan ze niet krijgen. We kunnen voegen, dat wel. Dus we kunnen insert draaien met commando insert. En we geven het gewoon een object, en we gewoon zorg ervoor dat het formaat is wat we verwachten. Als we gekeken naar stap twee, we dat elke taak zag was een object met een tekst als sleutel en wat je te doen punt was als een variabele. Dus we kunnen iets doen hier. We kunnen het hebben een taak in te voegen riep ik kom uit Mongo. En wij op Enter, en het loopt. We kunnen lopen vinden opnieuw, en we zien dat er hier een object. Mongo wijst deze een ID, die u niet echt zorgen te maken over. Wat is belangrijk voor u is de data je in, is de gegevens die u eruit te komen. Laten we terug gaan naar onze website, en hey, onze taak geladen. En je kunt dat zien want Meteor is erg slim en altijd verfrist voor u, ik had niet om de pagina te raken. Het automatisch geladen. Laten we lopen een stukje code in JavaScript hoewel dit doen. Zoals we hebben Node in de rug uiteindelijk uit te voeren buiten JavaScript, kunnen we ook draaien JavaScript direct in onze browsers. U kunt dit doen door een functie riep Inspecteer Element. Als ik klik met de rechtermuisknop op een sectie van de pagina, er is een optie riep Inspecteer Element. Als u gebruik maakt van een browser zoals Safari, u Mogelijk moet u de ontwikkelaar in staat gereedschappen voordat je deze functie. Wat we de zorg over is de console. Dus we zullen gewoon naar de console onderaan. Nu kunnen we geen JavaScript draaien hier, net als de JavaScript bestanden die ik liet zien in de js voorbeeld. Maar laten we nu eens kijken naar taken. We kunnen onze opdracht uit te voeren. En hopelijk zal ik in staat zijn om te maken het een beetje groter, zodat we allemaal kunnen zien. Als we lopen tasks.find, en je zult zien dat dit exact dezelfde code dat de JavaScript-bestand gebruik in stap drie, dit task.find. We kunnen hetzelfde draaien, en nu krijgen we een aantal rare dingen. Hoe komen we eigenlijk krijgen de gegevens? Nou, we hebben om dit te voeren commando genaamd halen. Dit is erg handig voor het debuggen. Wat je hier krijgt is een cursor, en dit is een leuke manier Meteor heeft geoptimaliseerd ophalen van gegevens. Deze cursor heeft alle functies voor live-actualisering en de pagina te vernieuwen als er iets is veranderd. Maar het zal niet ons de gegevens. We kunnen de gegevens via halen krijgen. En je ziet hebben we een object, en het is net als wat we hadden in Mongo, met een ID en de tekst zetten we in. Dus hoe kunnen we op een item in Meteor te voegen? Nou, we hebben taken. En dan kunnen we lopen het Hetzelfde insert commando, het geven van een woordenboek of een object met hetzelfde formaat, tekst en dan kom ik uit de console. Neem een ​​kijkje boven, want toen ik Dit doen, het verschijnt op de website automatisch. Merk op dat je iets kunt zetten je wilt in deze items. Het hoeft niet te een vaste structuur. Ik kon gelijk aan het hebben nummer drie en b gelijk is aan vals. En het allemaal werkt. Ik kan zelfs kiezen om niet te onder andere een tekst helemaal. Dit is gewoon niet aanbevolen hoewel want dan Meteor zullen niet weten wat te laten zien. Maar in elk geval, we krijgen een ID, en dat is de ID van het object dat u kunt gebruiken. Als we doorgaan met stap vier en stap vijf, de tutorial zal u tonen hoe dat je UI-elementen te creëren met behulp van de HTML je weet te maken verschillende taken. Laten we eens kijken naar stap vier heel snel. We zullen zien dat we toegevoegd een sectie over evenementen. Templates kunnen hebben helpers, die ons gegevens op te halen. Maar het kan ook gebeurtenissen noemen. En dit is waar spul wordt nuttig, omdat gebeurtenissen worden wat er gebeurt wanneer u klikt op verschillende dingen op uw website. Hier, onze code is te vertellen ons naar dit evenement toe te voegen. Voeg het toe als je hebt ingediend iets met de klas nieuwe taak. Wat je hier hebt is een CSS selector. Dus dit ziet er gewoon voor een HTML- element dat de klasse nieuwe taak heeft. En het ziet er voor het evenement, zoals in te dienen. Andere evenementen zijn onder klik, hover, dubbelklikken, vergelijkbaar met wat je krijgt in de normale HTML. Wat je hier geven is nu een functie. En kunt u uw code die functie. Deze functie is wat eindigt krijgt aangeroepen wanneer u deze nieuwe taak in te dienen. Laten we eens kijken naar de HTML zodat we begrijpen wat deze nieuwe taak is. We hebben hier een formulier toegevoegd met klasse nieuwe taak. En het heeft een ingang die tekst neemt. En dit is waar we zal onze nieuwe taken toe te voegen. Laten we stap vier draaien in de website om te zien hoe het eruit ziet. We kunnen first out stoppen van de MongoDB we hadden van onze vorige voorbeeld Beheer C. En laten we veranderen in de stap vier directory. We zullen opnieuw uitvoeren Meteor Om de server. En helaas, had ik Meteor uitgevoerd in een andere terminal. Dus ik ga gewoon zorg ervoor dat deze gesloten. Laten we stoppen met deze en verandering om deel vier, stap vier. OK. Nu onze Meteor code wordt uitgevoerd. En je kunt zien dat het bijgewerkt, zonder dat we het zelfs om de pagina te vernieuwen. Wat is hier veranderd is nu dat we geen taken hebben, maar we hebben hier een formulier, dit tekstvak, om onze nieuwe taken toevoegen. En we kunnen onze taak hier te typen. Ik kom uit de HTML-pagina. Toen ik op Enter, werd voorgelegd. We kunnen zien wat er gebeurd als gedefinieerd door de JavaScript-code. Wat deze functie deed was Neem de tekst uit de vorm, en dan belde net tasks.insert, zoals we deden in de console. Ze hebben ook besloten om een ​​createdAt datum toe te voegen. Dit is hoe je dat zou geef de huidige tijd. Daarna klaart het formulier door het maken van ervoor dat de waarde is de lege string. En dan roept hij return false naar zorg ervoor dat er niets anders gebeurt. Wanneer u return false vanaf een vorm evenement, dat de uitvoering stopt. Zeggen een vorm heeft een actie, als onderwerpen aan een PHP-pagina. Als je niet was teruggekeerd vals, zou je ware terug. Het zou uiteindelijk het maken van dat verzoek. Valse onderscheppen en stopt het daar. Dus dat was een beetje demo over hoe Meteor werkt, en we hebben geweest na de tutorial voor een tijdje. En je kunt gelieve te voelen vrij te blijven doen. Er zijn tal van middelen, en de tutorial is eigenlijk alleen zeer goed over te leggen wat is er aan de hand. Ik wil u nu laten zien, in de paar minuten die we nog hebben, Wat zijn de koeler kenmerken van Meteor, en wat zijn enkele van de nuttiger pakketten. Een van de grote dingen over Meteor is dat je een pakket systeem. U kunt gemakkelijk de code op te nemen dat vele duizenden ontwikkelaars wereldwijd hebben geschreven in uw Meteor project. Een voorbeeld hiervan is wat je misschien doen in stap negen van de tutorial, waar je probeert om accounts toe te voegen om uw Meteor project. Als we een CS50 PHP project, zouden we te vertrouwen op het raamwerk of onze eigen code aan te maken zorgen dat we veilig hanteren wachtwoorden en gebruikersnamen en opslaan van de database en dat allemaal. Het blijkt Meteor heeft een aantal pakketten om dat te doen voor u, en dat heel gemakkelijk. Wat we wel kunnen doen is het toevoegen van een paar pakketten. Dus laten we dat doen recht nu in onze console. Ik ga om het project af te sluiten en nu gaan in eenvoudige-todos. Nu, eenvoudige-todos is het project dat u zal na gedaan met stap 11 of stap 12, Aan het einde van deze tutorial. En laten we snel naar kijken om te zien wat zijn de verschillende functies die we hebben. Laten we gewoon zorgen dat het draait. Soms duurt het een tijdje om te vernieuwen, maar hier is het. Wij hebben onze mogelijkheid om te verbergen taken uit te voeren, en we kunnen aanmelden. En dit werd gedaan de Meteor pakket. Het is geweldig. We hebben nu gebruikersnaam en wachtwoord aanmelden. Maar wat als we wilden voegen een ander soort login mechanisme? Laten we zeggen dat ik wilde om in te loggen met mijn Meteor rekening. Ik ga meteoor add draaien, en dit is de syntaxis voor het toevoegen van pakketten. Ik kan accounts, en accounts.meteor zeggen. Het gaat nu vinden de verpakking en deze te laden. Je kunt zien dat ik niet vond de juiste naam van het pakket. Dus hoe kan je te weten komen over pakketten? Wel is er een geweldige website, gemaakt beschikbaar gesteld door de Meteor mensen, riep atmospherejs.com. Atmospherejs, één woord, dot com, is een grote opslagplaats voor het vinden van alle Meteor pakketten in de repository. Ik kan zoeken accounts, en dan het zal mij alle relevante dingen te laten zien, alle pakketten met de naam van de account. Terwijl dat laadt, kunnen we proberen het toevoegen van enkele andere pakketten. Misschien is de Meteor pakket werkt niet nu, maar ik kan Facebook toevoegen. Ik kan de account toevoegen en vervolgens lopen de Meteor project opnieuw. Zodra deze begint, laten we eens kijken wat er veranderd is op de website. U kunt see-- ik misschien hebben om het hier te vernieuwen. Ik heb een knop om configureren Facebook login. En hier, ik heb alle de instructies Meteor heeft voor u bereid voor het opzetten van een Facebook-app. En u kunt gebruiken dat informatie om uw ID's toe te voegen. Als dat is gebeurd, moet je Facebook login werken in je app. Ik ga gewoon om te krijgen een app-id en een geheim, gewoon om te laten zien hoe dit zou kunnen werken. U ontvangt een Facebook-account nodig aan Facebook ontwikkelaar opties gebruiken. Laat me gewoon snel de Meteor sleutels die nodig zijn. Ik heb nog een Meteor project dat ik ga gebruiken, en ik ben gewoon gaan nemen de sleutels van dat bestand. En zodra ik vind het, zal ik gewoon in staat zijn om deze toetsen te kopiëren naar mijn Facebook. Dus hier is een sleutel. En dit is geheim. Je moet niet het delen van deze met mensen. En dan geef je je app geheim. En dit is zo Facebook weet jij bent jij. En u de configuratie op te slaan. Ik denk dat in het proces dat ik mijn Meteor app zijn gestopt. Dus ik wil gewoon zeker dat het er nog steeds. OK, laten we ervoor zorgen dat onze Meteor server wordt uitgevoerd zodat de webpagina wordt uitgevoerd. Merken als we stoppen met de Meteor server, de pagina is er nog steeds. Het zal gewoon niet meer te werken. De Meteor server is noodzakelijk voor te zorgen dat de pagina live is. OK, ik heb het voorgelegd, en nu Ik kan inloggen met Facebook. Nu is het gewoon een kwestie van het hebben van een Facebook-pop-up en het opzetten van uw account informatie en in te loggen. Zodra je dat doet, Facebook zou nag u voor wat meer zekerheid. Dus we zullen er gewoon stoppen. Het punt is dat als je klaar bent met dat, zul je Facebook login. Meteor heeft een heleboel andere pakketten ook. U kunt inloggen met Google+. U kunt inloggen met GitHub. U kunt inloggen met Twitter. Of als je zoekt, zul je vinden tal van andere dingen zoals Meetup, LinkedIn, en Meteor Developer. Dus Meteor Developer was de pakket dat ik zocht. meteoor add rekeningen-meteoor-ontwikkelaar. In de tussentijd, ik ook willen adviseren sommige andere pakketten voor uw projecten. Het zou nuttig kunnen zijn om onder meer de jQuery-pakket. Dit stelt u in staat om te gebruiken jQuery in uw klanten. Je kon gewoon doen met één lijn, en Meteoor zal ervoor zorgen dat je up to date op jQuery. Ik adviseer ook houston: admin. Dit is als een soort van phpMyAdmin soort hulpmiddel voor uw MongoDB. Dit stelt u in staat om te bewerken uw gegevens vrij gemakkelijk zonder te gaan naar de Mongo shell, zoals ik had eerder in het seminar gedaan. Dus nu dat die draait, laten draaien Meteoor opnieuw en zien wat we kunnen doen. Je merkt dat het toevoegen van enkele pakketten misschien hebben ze presenteren een aantal waarschuwingen. U zult geen zorgen te maken daarover met Houston. Dus we kunnen nu de mogelijkheid Meteor admin configureren. En ze geven u de aanwijzingen als je wilt om dat op te zetten. We kunnen nu ook naar / admin. Dit wordt u aangeboden door de Houston-pakket. En dit is Meteor admin interface. U maakt gewoon een admin-account, zoals zo. En als je de pagina vernieuwt, zou je hebben een aantal collecties opdagen. Het is een zeer nuttig instrument, en ik sterk aanbevelen. Je kunt zien dat, omdat Houston werd het geven van een aantal fouten, we geen collecties hebben toont nu omhoog. De manier waarop je zou houston gebruiken is zorg ervoor dat deze functie krijgt genoemd in uw eenvoudige-todos. Dus houston niet weet wat mijn taken zijn. We zetten een Mongo collectie genaamd taken. Laten we gaan in eenvoudige-todos en net Zorg ervoor dat in de JavaScript, we hebben de taken toegevoegd aan onze collectie. We hebben nu opgeslagen, en het is de bouw van de toepassing, verfrissend. En laten we zien. Nu hebben we een aantal taken. En we kunnen een aantal nieuwe taken toe te voegen. Maar als we willen taken toevoegen, laten we het doen met de app zelf. Nu kunnen we een aantal gegevens toe te voegen. Hoi, dit is een taak. Het lijkt een beetje vreemd dat we niet zien geen taken. Wij zou willen kijken of we kregen elke fouten hier, of misschien ergens anders. Als we gaan in admin, dat lijkt vreemd. Als je de repository te trekken Na dit seminar, Ik zal ervoor zorgen dat eenvoudige-todos werkt met Houston. Helaas lijkt het niet te te werken op dit moment. Zijn er nog andere vragen? Houston normaal een tool die heel goed werkt. Houston specifiek is een beetje buggier dan de andere, maar ik raad het als het werkt. Yeah. Publiek: Wat kunt u doen met de Facebook-pakket zodra een gebruiker is aangemeld in met hun Facebook? ROGER ZURAWICKI: Eens een gebruiker ingelogd, kunt u bellen naar de Facebook-API te maken. Een groot deel van dat ligt meer in hoe Facebook opent hun API. Meteoor, zorg ervoor dat je de verbinding. Maar alles na dat is een kwestie van leren hoe je de Facebook-API gebruiken. Publiek: [onverstaanbaar]. ROGER ZURAWICKI: Oké. Dank u zeer voor Dit CS50 seminar in Meteor. Als u vragen heeft, kunt u mij mailen naar mijn e-mailadres onder het seminar vermeld. En ik zal blij zijn om antwoord op uw vragen. Ik zal ook bij de CS50 Hackathon moet u helpen met uw Meteor projecten nodig. Bedankt voor het kijken.