[MUSIC JOC] ROGER ZURAWICKI: Bună, mea Numele este Roger Zurawicki, și voi fi acoperire seminarul CS50 Meteor. Meteor este un nou cadru dedicat noul tip de web, nu PHP face cereri înainte și înapoi natură de web am văzut în setul PHPP, dar mai dinamic JavaScript părți ale web. Puncte Meteor pot face include Actualizarea live și imediat comunicarea între vorbitorii aceleiași site-ului. Pentru acest seminar, avem Codul găzduit la GitHub mea. Puteți merge la această adresă URL și descărcați-l. Dacă știți cum să utilizați Git, puteți clona depozit. Dacă nu știi cum să folosești Git sau nu au folosit GitHub, asta e complet în regulă. Eu vă va arăta foarte repede cum putem merge la GitHub, și nu există o opțiune de descărca un fermoar chiar acolo. Odată ce ați descărcat această director, tu poate începe să joace cu codul nostru. Mai multe informații despre Meteor pot fi găsite la meteor.com. În dosarul Seminar, am de fapt au unele proiecte Meteor putem folosi. Unul dintre dosarele pe care le avem în nostru Proiectul seminar este aplicația todos. Deci, dacă mă duc în ea I, au Meteor instalat. Deci, pentru a rula, trebuie doar să tastați Meteor, iar Meteor va instala. După cum puteți vedea, trebuie să asigurați-vă că am instalat Meteor. Așa că Mă duc la rulați-l încă o dată pentru a vă asigura că Meteor este instalat corect. În timp ce am Meteor instalare, vă pot arăta unele demo-uri live ale site-urilor Meteor merge direct chiar acum pe internet. Am un demo de aplicația noastră. Poti accesa la următorul URL. Aceasta este aplicația pentru a face acest lucru ne au în directorul nostru seminar. URL-ul pentru acest lucru este rozu-rabbit.meteor.com. Veți vedea că Meteor va de fapt găzdui proiectele dvs. Meteor gratuit. Iar la finalul seminarului, vei putea să facă acest lucru, de asemenea. Aceasta este o listă a face app. Și vă puteți conecta, de a crea conturi, și se adaugă sarcini. Puteți crea un cont ca așa. Și acum, odată ce ai un cont, puteți adăuga sarcini. De exemplu, una din sarcinile I ar putea avea nevoie pentru a merge ridica rufele mele. Și dacă ești această site-ul on-line, veți a se vedea de fapt această sarcină pe computerul în timp real. Pot să vă arăt un demo rapid de acest lucru prin deschiderea rozu-iepure într-o altă filă cu aceeași adresă URL. Și vedem că aceleași date vine. Putem, de asemenea, rula în un alt browser. Spune-am alerga în Safari. În acest fel nu vom autentificat. Deci avem aceeași Meteor app, și o dată se încarcă, vom vedea aceleași date am făcut-o în primul. După cum puteți vedea, nu mă autentificat aici. Și când datele controale de audiență, se actualizează pe toate browserele simultan. Aceasta este una dintre adevărat caracteristici interesante despre Meteor. Cu aproape nici o lucrare, tu au o aplicație de actualizare în direct că schimbările de pe toate dispozitivele dumneavoastră la o dată. Dacă bifați caseta de validare aici în lista mea de a face, vom avea, în alte browser-ul meu Chrome, elementul verificat off. Și acest lucru se întâmplă instantaneu. În regulă. Deci, se pare ca Meteor instalare este pregătit acum. Deci, acum să ne întoarcem la app todos și a alerga acest nivel local. Dacă aveți un proiect Meteor, puteți doar rulați cu Meteor comanda. Odată ce ați face acest lucru, Meteor va face o anumită pregătire să vă asigurați că toate codul este sub control. Și apoi o să vă spun că Proiectul este gata pentru a fi servit. Ai putea avea nevoie pentru a permite tău firewall, dacă blocuri de calculator pe care. Deci, ceea ce Meteor îmi spune acum este că în acest website locală la calculatorul meu, eu pot vedea ceea ce acest proiect Meteor este. Rețineți că chiar acum, aplicația mea este nu sunt accesibile pe internet. Vom acoperi cum să aducă Meteor dumneavoastră app la un site viu un pic mai târziu. Așa că Mă duc la copiați acest URL-ul acum și du-te în Google Chrome. Și acest lucru este de a face lista de exemplul. Puteti vedea ei în aplicare alte câteva caracteristici aici. Avem file diferite, ne-am au aceleași caracteristici de cont, și putem adăuga noi liste. Acum, una dintre cele mai adevărat facilitate rece despre Meteor este faptul că nu numai se poate acest lucru de lucru pe browser-ul web, dar puteți crea, de asemenea, nativ iPhone și Android aplicații prin intermediul unui instrument numit PhoneGap. Deci, unele proiecte vor veni pre-configurate pentru a rula pe iOS, cum ar fi această aplicație todos. Deci tot ce trebuie să faceți pentru a rula în iOS este de tip Meteor, alerga, și apoi iOS. Și când fac asta, Meteor va pregăti din nou pachetul. Și apoi, după ce e gata, o să încărcați simulator iOS la comanda mea. Notă Puteți rula doar iOS aplicații dacă aveți un calculator Mac. Puteți rula aplicațiile pe Android pe toate platformele. Deci, acum puteți vedea că iPhone-ul meu simulator venit pe ecranul meu. Și într-o clipă, vom încărca cu aplicația. Dacă vom face doar un pic mai mici pentru a se potrivi pe ecran, vom vedea, avem noastră aplicație pentru iPhone. Și așa noi nu facem obține confuz, hai să facem sigur suntem pe aceeași site-ul, gazda locală 3000. Deci, aici este un exemplu a aplicației Meteor am, aplicația Todos, care rulează atât pe un telefon și pe un browser web. Și când am schimba lucrurile în browser-ul web, imediat se duce la telefon. Și eu pot șterge ceva la telefon, și se schimbă în browser-ul web. Acum, în mod normal, pentru a crea nativ app telefon pentru iOS sau Android, trebuie să știți nici Java sau Obiectiv C. utilizări Meteor tehnologie pentru a permite JavaScript pentru a rula ca aplicația se numește PhoneGap. Ce aplicația, în esență, este este un browser web. Și Meteor se ocupă de toate părțile implicate dificile pentru aducerea ca browser-ul web pentru a iPhone-ul sau dispozitivul Android. Puteti vedea că interfața cu utilizatorul este buna, și se arată și se simte foarte mai mult ca o aplicație nativă. Observați că dacă mă duc la casa ecran acum, am obține, de asemenea o pictogramă. Acesta nu este un site web ca vei găsi în Safari. Aceasta este propria aplicație. Puteți instala și șterge-o, dacă doriți. Vă putem arăta pe scurt ce codul pentru acest tip de Todos app arată. Dacă te uiți în dosarul todos, veți vedea acolo sunt multe foldere. Dar în cursul seminarului, vom înțelege ceea ce fiecare dosar se utilizează pentru. Să mergem în terminalul așa am Puteti vedea fișierele un pic mai bine. Am de gând să apăsați Control C pentru a opri serverul, iar acum m-am întors în aplicația todos. Am dosare diferite aici, cum ar fi dosarul clientului, directorul de server. Și aceste dosare înseamnă pur și simplu că tot în dosarul clientului este executat pe browser-ul dumneavoastră. Totul într-un dosar de server este executat pe un server. Ceea ce vreau să subliniez faptul este că ceea ce am avut când am avut funcționare nostru de telefon și Browser-ul nostru web, acestea au fost clienti. Dar ce se execută într-un terminale, asta e serverul. Avem alte dosare, cum ar fi lib, care este codul bibliotecă, ca ajutor ta funcții, pe care le puteți utiliza atât pe client și server. Și atunci ai un public dosar și resurse dosar necesar pentru a obține imagini și alte CSS încărcat. Dacă ați instalat Meteor, vom continua cu tutorial pentru Meteor. Puteți merge la această adresă URL, meteor.com/install, pentru a obține linia de comandă pe care am ți-a arătat că se instalează Meteor. Vom trece prin primul câțiva pași pentru a obține o mai bună simt despre cum să instalați Meteor. Dar în primul rând, cred că este important ca vom revizui un pic de JavaScript. Pentru a-ți arăt câteva exemple de cum cunoștințele noastre C poate fi tradus la JavaScript, am creat câteva exemple. Acestea sunt în directorul js. Deci, dacă la seminariile voi folderul uite, e un folder numit js. Și aici avem câteva exemple. Să deschide primul exemplu și vedea foarte repede. Ceea ce vedem este standard ta salut comandă lume. Ai observa in C pe care le au destul de câteva rânduri. Și pe măsură ce elevii CS50 știți, avem nevoie de o funcție principală, și trebuie să includă standardul I / O bibliotecă, în scopul de a apela printf. Să ne uităm la modul în care compară JavaScript. Am de gând să deschidă ex1.js. A comentat afară este ceea ce C cod ar arata ca, și linia de mai jos este tot aveți nevoie pentru a rula în Node. Nu aveți nevoie de o funcție principală, tu nu trebuie să includă toate fișierele, și nu aveți nevoie să se întoarcă. Ai sunat doar console.log. Acesta este echivalentul a printf dumneavoastră. Și este nevoie de la fel argumente printf ar fi. Și în scopul de a se rula, în loc de a rula face EX1, v-ar suna doar ex1.js. Node Tu scrie Nod și apoi fișierul, și acesta devine alerga. Nu se compilat. JavaScript este un limbaj interpretat. Deci, nu este nevoie să fie compilat înainte de a fi executați. Dacă aș fi vrut să curgă ex1.c, Trebuie să-l facă în primul rând, și apoi pot rula executabil pentru a obține același rezultat. Să acopere rapid unele alte concepte JavaScript. Să ne uităm la exemplul doi. În ex2.js, în ex2.c, putem vedea că avem un cod. Lasă-mă să merg repede la un editor de text mai bun care va arăta aceste noi linii de un pic mai bine. În regulă. Aici avem exemplu 2.c. Aici avem diferite tipuri că suntem imprimarea. Și după cum știm, printf ia argumente diferite la sută pentru a accesa diferite piese de date. Dacă doriți să imprimați un șir de caractere, noi numim% s. Dacă vrem să numim un Floating numar de punct, am sunat% f. Și nu există nici o modalitate ușoară de a apela un Boolean prin valoarea sa adevărată sau falsă. Dar, dacă folosiți% d, puteți obține un 0 sau 1 pentru fals și adevărat. JavaScript este un pic mai frumos pentru noi. În JavaScript, să ne uităm la câteva Diferențele avem în acest dosar. În primul rând, observați că în C trebuie să inițializarea fiecare variabilă cu un tip. S este o stea char. E un șir, și ea nu poate fi orice alt tip. N este un float. B este un Bool. Dar, în JavaScript, există tipuri dinamice. Asta înseamnă că tu nu faci trebuie să-i spuneți JavaScript ce tipuri variabilele vor fi. Trebuie doar spun var pentru variabila, numele variabilei, iar apoi valoarea sa. Astfel, un var poate fi nimic cu adevarat. Acesta poate fi un șir. Acesta poate fi un număr în virgulă mobilă. Acesta poate fi un personaj. Acesta poate fi un Boolean. Și jurnal consolă functioneaza un pic diferit. Dacă doriți să imprimați un număr, te sun% d. Dar cele mai multe valori pot fi imprimate ca siruri de caractere foarte bine. Să facem acest lucru în Node pentru a vedea ce se va întâmpla. Pot apela ex2.js Node, și ne printf cu CS50 valori, N ca numărul de virgulă mobilă, și apoi B ca Boolean convertit la un șir adevărată. Ce zici dacă ne-am facut exemplu 2.c? Ei bine, avem încă ceva mai multe necazuri cu printf. Observați că punctul de flotant Numărul trebuie să fie formatat corect, și că Boolean nu poate pur și simplu fi afișate ca adevărate sau false. În regulă. Acum, să ne uităm la exemplul trei. În exemplul trei, suntem arată cum ar trebui să utilizați o buclă pentru. De fapt, e foarte simplu. Unul dintre lucrurile frumoase despre JavaScript este că se bazează C. Asta înseamnă că o mulțime de dumneavoastră Codul va arata foarte similar și se simt foarte mult la fel. Într-un pentru buclă, singurul lucru care a schimbat într-adevăr aici este în loc de int i, avem var i. Putem totuși atribui valoare la zero, verificați că este mai puțin de cinci, și incrementa cu un cu operatorul ++. Facem apel console.log pe i, și că ne va imprima un număr cu fiecare linie. Să rula foarte repede pentru a vedea ce va fi afișat. Am primi un număr nou în fiecare rând. Un alt lucru pe care îl vrei pentru a observa cu console.log este că nu trebuie să scrie backslash n pentru noua linie. Console.log va imprima totul pe o linie proprie. E o caracteristică frumos că JavaScript ne dă. Acum, haideți să deschidem exemplu patru. În exemplul patru, în primul rând în C, noi solicităm câteva funcții. Observați că trebuie să declare Funcții înainte de a le folosi în principal. Dacă am fi avut principală întâi și apoi se adaugă și apoi ridicat, face, zăngăni, sau CCG ar ne da o eroare spunând că nu știe ce mare e. Ea nu știe ce add este. Deci, în C, trebuie să fie pretentios despre ordinea în care suni funcțiile. Să ne uităm la modul în care puteți face acest lucru în JavaScript. Avem diferite fișiere, deoarece acolo sunt cateva moduri diferite de a face acest lucru. O modalitate este destul de mult o traducere directă. Deoarece functii in C Tipuri de a reveni, și JavaScript nu știu cu adevărat sau îngrijire despre ce tip te vei întoarce, nu scrie un tip. În schimb, doar ai nevoie a scrie funcție, și totul este destul de la fel ca mai înainte. Cand ai o variabilă, cum ar fi în adăuga, trebuie doar să scrie x și y. Nu avem nevoie să spun x este un int. Nu avem nevoie să spun y este un întreg. Ne intoarcem cu aceeași sintaxă. Pentru mare, l-am declara cu funcționează în loc de gol. Observați că dacă e gol sau non-nule, este încă tot aceeași funcție. Și pur și simplu nu pune nimic în paranteze, și se pare foarte mult ca codul C. Și de mai jos, o putem numi de mai jos. Dacă ne uităm la exemplul 4b, observăm că m-am schimbat câteva lucruri. Singurul lucru pe care l-am schimbat într-adevăr, deși este de ordinul. Avem la fel funcții, dar acum ei sunt declarat după ce acestea sunt utilizate în console.log și de înaltă pe liniile 18, 19. Dacă ați făcut acest lucru în C, face ar arunca o eroare. Aici, acest lucru funcționează foarte bine. Și eu pot demonstra asta prin apel Nod pe exemplu 4b. Un alt mod putem apela funcții este de economisire funcționează ca variabile. Cum am spus, o variabilă poate avea orice tip. Unul dintre tipurile unei variabile poate avea este o funcție. Deci, dacă te uiți la exemplu 4c, ceea ce m-am schimbat aici este var adăuga în loc de funcția de adăugare. Și acum adăuga egal o funcție. Această funcție de aici este anonim. Nu are nume, deci e doar funcțională și apoi paranteze. Sintaxa după care nu se schimba, dar tu trebuie să țină cont de faptul că aveți o variabilă care esti stocarea funcția în completare, și o variabilă care sunteți stocarea în mare. Deoarece se adaugă și mare sunt acum variabile și nu funcții, ceva se schimbă. Aceasta este o eroare comună văd în o mulțime de JavaScripts oamenilor, și ceva de a păstra în minte. Când am rulat acest lucru, să vedem ce se întâmplă. Primesc o eroare. Se spune nedefinit în acest moment. Deci o serie spune nu știe ce e adăuga. Deoarece acum adăuga nu este o funcție, adăugați este o variabilă. Și nu am dat de fapt adăuga o valoare încă atunci când îl utilizează. Asta ne aduce la exemplul 4d, în cazul în care în cazul în care doriți să utilizați variabile ca funcții, trebuie doar să vă asigurați că ei obține valoarea înainte de a fi folosit. Să trecem la exemplul cinci apoi. Aici, vorbim despre structs în C. În C, struct au această structură fixă ​​a le pentru că va trebui să le declare înainte de al utiliza, și you say Am un elev, și fiecare elev are exact un nume, un an un gen. Trebuie să aibă toate. Ea nu poate avea alte valori, și ele trebuie să fie tipuri specifice. Atunci putem inițializa struct în această sintaxă frumos pentru că știe comanda. Deci, știe că Roger este un nume. Se știe că 2016 este un an și M este un gen pentru că am spus că această listă este un elev struct. Și apoi puteți imprima ea, accesarea s.name. Să vedem cum ne-ar converti care a JavaScript. Observați că s este acum un variabilă, și nu există nici un tip. E din nou doar o var. Pentru că nu contează dacă tip de această variabilă este un pointer, este o struct, sau orice altceva. Avem o sintaxă ușor diferită. Această sintaxă este sintaxa obiect. S-ar putea fi văzut în JSON. JSON înseamnă de fapt JavaScript Object Notation. Acesta este modul în care definiți obiecte în JavaScript. Avem o cheie, care este valoarea, cum ar fi numele. Și da valori pe cealaltă parte a colonului. Și un lucru de a păstra în minte este de tine nu trebuie să aibă un nume și un an și un gen de un obiect. Un obiect poate avea nici o valoare. Se poate avea la fel de multe ca tine doriți. Putem folosi aceste obiecte în doar același fel ne-ar folosi un struct, s.name. Putem rula foarte repede de a face nod exemplu 5.c. Nu putem rula de fapt un fișier C în Node. Ea nu știe ce C este. Se știe doar JavaScript. Când ne-am rula ex5.js, avem valoarea, care ne-am așteptat. Să trecem la șase exemplu. Aici vreau doar să vorbim un pic mai multe despre matrice JavaScript pentru că sunt un pic diferit de ceea ce esti folosit la C. Array sunt notate, nu cu consolele, cum ar fi în C, cu acolade, dar paranteze. Puteți avea o matrice goală, ca ARR în linie patru. Puteți avea tablouri cu mai multe valori. Și tu le accesa doar în același mod în C. Până la linia șapte, tot Pare destul de simplu. O diferență minoră este aici, la linia 10. Modul în care obține o lungime de un matrice este doar de apel .length. O matrice poate fi de fapt tratat ca un obiect, și acest obiect are o proprietate lungime să sunați pentru a obține lungimea lui. Observați că aceasta este diferită în C pentru că în C tu trebuie să știe lungimea obiect inainte de timp. Deci, un alt lucru frumos despre rețele este că puteți avea diferite tipuri. Dacă aveți o matrice în C, acolo sunt tablouri de o anumită valoare, fie un pointer struct sau plutește sau [inaudibil]. Aici, puteți avea valori diferite. Am avut mai întâi un număr în virgulă mobilă, apoi un Boolean, apoi un alt întreg. Și, de fapt, ei pot schimba tipuri de prea. Uită-te la linia 16. Array două se schimbă de la a fi un număr, un întreg, la un șir. Un alt lucru frumos despre matrice este aici la linia 19, ei au dimensiune infinit. Puteți spune doar vreau sutime Element să fie șirul legal. Și acest lucru nu pare să facă sens deoarece matrice numai are spațiu pentru trei elemente, astfel încât la sfârșitul ar trebui să fie două. Dar când faci acest lucru, să vezi ce matrice trei devine. Ne-ar alerga atât de repede cu exemple de nod six.js. Ne acest foarte lung matrice, și ce se întâmplă este avem primele elemente și apoi o grămadă de semifabricate până când vom obține șir nostru. JavaScript completează matrice cum este necesar. Să mergem în cele din urmă la ultima noastră exemplu. Aici avem o listă de diferite elevi. Vreau să vorbesc un pic bit despre unele aspecte frumos de la bucle în JavaScript. În C, pentru bucle sunt un fel de limitate. Ei au o structură fixă, în cazul în care au o variabilă, aveți o afecțiune, și apoi faci ceva la finalul buclei. Și, bineînțeles, acest lucru funcționează în JavaScript, așa cum am văzut în exemplele anterioare. Dar avem, de asemenea, modalități mai frumoase de a face acest lucru în JavaScript. Aceasta se numește o buclă foreach. Ne pare rău, să ne întoarcem la șapte exemplu aici. Putem spune, de asemenea secțiune este o listă. Deci, da-mi fiecare i sau fiecare indice în această listă. Atunci putem obține studentul prin apel doar secțiunea de i. Deci, toate din Codul de stabilire i egale cu zero și de a face sigur că este mai mică decât lungimea și adăugând o la i de fiecare dată, e grijă de tine, mai degrabă frumos cu acest buclă foreach. Nu numai bucle foreach lucrează în liste sau matrice, ei, de asemenea, lucrează în obiecte, care este, de asemenea, frumos. Puteți obține numele de fiecare proprietate doar prin luarea un dicționar sau un obiect, cum ar fi elev, și apoi doar că dă-mi fiecare tastă. O cheie ar fi acestea proprietăți, nume sau casa. Deci, ce se va întâmpla aici este că am imprima întâi numele și apoi casa fiecărui elev. Pot rula acest lucru în Node foarte repede să-ți arăt. Ne primul stilul C timp de buclă, în cazul în care ne fiecare obiect fiind imprimate. Și apoi avem JavaScript stil, în cazul în care puteți doar imprima fiecare cheie și valoare individual. În regulă. Acum, că ne-am acoperit Node.js, cred suntem gata pentru a începe cu Meteor. Cum am spus, Meteor facut o treaba buna de a scrie câteva exemple de-a gata pentru tine pe care le puteți explora prin acest tutorial sau în dosarul seminar. Dar aici vreau să începe mai de la zero. Să crea un simplu de a face cerere. Aceasta este un fel de baza a ceea ce a face cerere-am arătat mai devreme este. In acest tutorial, voi va vedea că nu există o Meteor comandă a crea la a crea un nou proiect Meteor. Ai nevoie de a apela acest lucru pentru pentru a rula proiecte Meteor, deoarece va rula comenzile pentru a crea Meteor fișierele necesare pentru proiectul dumneavoastră. Dacă te duci în terminal, putem du-te în directorul numit un pas. Și pas se va corespunde cu primul pas în acest tutorial. Observații există dosare, etapa o, pasul doi, tot drumul până la cinci. Și fiecare este corespunzător la un pas în acest tutorial. Am de gând să-l deschidă în editorul meu de text aici astfel încât să putem vedea un pic de ceea ce a fost creat. Observăm că acolo sunt patru părți principale. Există un director Meteor, .meteor. Și tu, de obicei, nu trebuie să atingă. Meteor are grijă de acel folder, și doar se asigură că dumneavoastră Proiectul va funcționa corect. Avem, de asemenea trei dosare, un fișier HTML, un fișier JavaScript, și un fișier CSS. Să începem cu primul fișier HTML. La prima vedere, acest lucru pare ca un document HTML. Dar observați că acolo câteva diferențe. Unul, aceasta nu este de fapt un document complet HTML. Ne lipsesc tag-uri HTML. Acest lucru este normal. În Meteor, nu te aștepta pentru a crea aceste tag-uri HTML. Asta făcut pentru tine. Vrei să begin-- daca doriți să creați un site web, trebuie doar să începeți cu tag-ul cap, defini că, și apoi defini tag-ul body. Dar dacă observați în această Fișier HTML, avem o nouă etichetă. Avem tag-ul șablon. Acest lucru nu este HTML normală. Aceasta este o versiune specială a HTML că Meteor face disponibile pentru tine. Se numește bare de spațiu. Puteți defini șabloane cât mai puțin module, un fel de funcții ajutătoare, în C sau cod JavaScript. Acest model ar au un nume numit sarcină. Și puteți vedea chiar aici, pe line 13 pe care le puteți apela aceste șabloane. Și ce Meteor va face este doar completați aceste sarcini pentru tine. Un alt lucru pe care s-ar putea observa o bit diferit este acest lucru de fiecare funcție. Fiecare va lua variabila sarcini și fel de du-te prin ea în care ne-am foreach bucla a văzut în exemplul șapte. Acest fiecare poate lua un dicționar sau o listă, un obiect sau o listă, și se duc să prin toate valori ca o buclă foreach ar fi. Deci, dacă avem o grămadă de sarcini, aceasta va apela șablonul pe fiecare sarcină. Să facem proiectul Meteor doar pentru a vedea că acest lucru se întâmplă. Eu conduc proiectul Meteor cu doar Meteor Meteor sau a alerga. Și acum Meteor doar va avea nevoie de să pregătească rapid proiectul, începe baza de date în care este necesar, și apoi a posta aplicația local. Putem merge la browser-ul nostru acum. Și vom vedea că noi au o aplicatie foarte simplu. Deci, ceea ce am văzut a apărut a fost de fapt etapa o, fișierul etapă. Să trecem la pasul doi numai pentru că Cred că va servi în același scop. Mă duc să se schimbe la pasul doi directorul și executați Meteor din nou astfel încât să putem vedea modelul ne-am lucrat cu. Da, o întrebare? Audiența: Dacă ne asistent permisiunea a negat, este that-- ce e chemat pentru asta? ROGER ZURAWICKI: Dacă rulați alerga Meteor, și aveți permisiune a negat, unele dintre fișierele nu poate avea setul permisiunea dreapta. Deci, va trebui să verificați în cazul în care permisiunile sunt oprite. Acestea ar putea fi oprit de la proiectul dumneavoastră Meteor, sau ar putea fi oprit în Meteor se fișiere. Audiența: Dacă am descărcat chiar acum din GitHub, atunci ce ar trebui să fac [Inaudibil]? ROGER ZURAWICKI: Dacă doriți să vă asigurați că puteți accesa, există o comandă, puteți rula. Lasă-mă să scrie repede-l astfel încât alte persoane pot vedea. Am de gând să deschidă o nouă filă aici și du-te în dosarul meu seminar. Chmod este comanda a modifica permisiunile, și vă pot spune r pentru a face acest lucru recursiv pentru fiecare fișier. Și permisiuni, puteți încerca 0755 să vă asigurați că aveți acces complet, și oricine altcineva poate citi. Și dacă tocmai tu a alerga această comandă, se va face vă că permisiunile sunt în verifica pentru întreaga directorul. Rularea ls-l puteți arăta permisiuni mai în detaliu. Acest lucru arata OK. Ce e cel mai important este că aveți toate cele trei rwx pentru toate fișierele din directorul seminarului. A că rezolva problema? Audiența: Se spune lipsă operand [neauzit]. [Inaudibil] ROGER ZURAWICKI: Tu Trebuie să asigurați-vă că au un punct de la sfârșitul comanda. Audiența: [neauzit]. ROGER ZURAWICKI: Bine. Să ne du-te repede înapoi la gazdă locală, aplicația avem. Și veți vedea că avem o câteva sarcini de aici, cum era de așteptat. Avem o grămadă de CSS, care nu aveți nevoie să vă faceți griji cu privire la. Tutorialul Meteor doar da asta pentru a face dvs. de a face lista de look-o bit mai frumos decât HTML simplu. Și avem dosarul JavaScript, care Voi intra in detalii un pic mai târziu, dar pur si simplu ofera aceste sarcini. Aceasta este una sarcină. Aceasta este sarcina doi. Aceasta este sarcina trei. Deci, aceasta este datele de Meteor asistent. Unul dintre lucrurile misto despre Meteor este că schimbările se poate întâmpla în mod automat. Dacă aș fi vrut pentru a schimba Numele prima sarcină, asa ca ar spune acest lucru nu este sarcină, și l-am salva, atunci când mă duc la web browser-ul, îl puteți reîmprospăta, și se spune în mod automat acest lucru nu este o sarcină unul. Puteți face același lucru în oricare dintre aceste fișiere. Fă o schimbare, în loc de a face listă, voi avea o mea de a face lista. Și un lucru pe care tocmai ați observat, că nu am avut chiar refresh. Ideea de răcoritoare este un fel de rezolvat pentru tine, cu Meteor. Ori de câte ori se detectează modificările de fișiere, se va încărca modificările pentru tine. Aceasta funcționează pe toate fișierele, indiferent dacă e HTML, CSS, JavaScript sau. Pentru a vă arăta ceea ce ar arata această aplicație ca fără CSS, eu pot totul elimina. Și atunci când este reîncărcată, aveți acum o nu la fel de frumos, căutarea de a face lista. Să punem acel conținut înapoi. Și destul de sigur, ea împrospătează, iar CSS noastră este înapoi. Marea. Ne putem muta acum pe cu tutorial. Hai sa vorbim despre etapa a doua, template-uri. Aceasta este ceea ce tocmai am văzut cu diferite sarcini. Meteor va explica ce modele și cum funcționează această logică. Dar hai să uităm la codul de a se vedea dacă putem face sens din ea. In aplicatii foarte simple, ca ceea ce avem în simplu de a face, pas unul, etapa a doua, etapa trei, patru etape, etapa cinci, nu avem nici un dosar. Nu avem serverul dosar am menționat. Nu avem client dosar care a fost menționat. Deci, Meteor va rula toate fișierele. Va aceasta atât rula pe client, atât pe server. Si daca vrei părți ale JavaScript cod pentru a rula doar pe client, ei trebuie să vă asigurați că aveți o dacă declarație, un fel de ceea ce avem în fișierul nostru JavaScript aici. Deci Meteor, numai în cazul în care e client, apoi m-am doriți să definiți un șablon helper numite sarcini. Ce acest cod într-adevăr face este se spune acolo e un șablon obiect numit care prevede Meteor. Și vom adăuga un ajutor. Helpers sunt aceste sarcini, aceste lucruri, cum ar fi sarcinile. Veți vedea că dacă ne întoarcem la Fișier HTML, ne-am chemat pe fiecare sarcini. Sarcini nu este definită în HTML. Este definită în JavaScript. Și Meteor trebuie să știe ce sarcini este când vom merge în JavaScript aici. Sarcini este acest ajutor. Helper, vă puteți gândi ea ca o variabilă șablon. Și ce sarcini face? Ei bine, aceasta returnează lista de valori. Pentru că este o listă, putem apela fiecare în ea. Deci, de aceea facem apel la fiecare sarcini. Și acum avem treabă. Ce face treabă? Ei bine, are această săgeată aici după acolade. Asta înseamnă sarcină este un șablon. Nu este un ajutor, ca ceea ce tocmai am văzut. E un șablon care le-am definit. Și unde am definit-o? L-am definit mai jos chiar aici. Toate acestea șablon nu este face un element din listă, și o numește text. Acum, textul pare a fi o ajutor, dar vă voi arăta că aceasta este de fapt încă un membru de date a sarcinilor. Când apelați fiecare, merge în structura de date un pic. Ca bucla foreach, acum doar pare la primul element din obiectul nostru. Vedem că textul este definit aici, în obiectul nostru. Deci, Meteor este inteligent să știe că vorbim despre acest text, nu helper numit text. Doar devine valoarea acestui text aici și îl afișează ca HTML, și că e modul în care datele se de la JavaScript pentru HTML. Mutarea pe, deși, în acest exemplu am greu codificate aceste valori. Meteor nu doi într-adevăr lucruri frumoase pentru noi. În afară de reîmprospătare vii pe care le a arătat, pe care le administrează, de asemenea, baza noastra de date. Dacă ați avut de a lucra cu PHP, a trebuit să configurați phpMyAdmin. Trebuia să vă asigurați că dumneavoastră tabele au fost toate sub control. Ai avut de a face o mulțime de lucru pentru a face că datele dumneavoastră a fost formatat corect, și PHP ar putea comunica cu ea. Acum, Meteor folosește o nouă paradigmă. Aceasta este o modalitate mai modern de manipulare unei baze de date. Este o tehnologie numită MongoDB. La fel ca în JavaScript, am văzut că Nu conta ce tipuri avut datele. Totul a fost un var. Nu a fost un charstar. Nu a fost o int. Nu a fost un struct. Acesta a fost doar var asta, var asta. MongoDB functioneaza fel de fel. Nu trebuie să definească mesele. Nu trebuie să spun un tabel are un nume, care are un int. Ea are, eu nu știu, o dolar, care este o zecimală. E doar aceste obiecte JavaScript, toate aceste Vars, în esență. Și aceasta este o foarte puternic mod de a prototipului aplicația. Și de aceea Meteor profită de acest lucru. Dacă mergem la pasul trei, Să vedem ce sa schimbat. Dacă ne uităm la HTML Todos, nu de mult. CSS nu sa schimbat deloc. Dar schimbarea de mici vedem în HTML este ne-am schimbat modul în care este definit sarcini. Sarcini este acum o funcție. Asta înseamnă că fiecare timp vrem să ajungem sarcini, vom rula această funcție. Ea nu se întoarce funcționează ca o valoare. Meteor este inteligent pentru a rula de fapt Funcția pentru a vedea ce ieșim. Și se întoarce acest lucru numit sarcini. Am definit sarcinile pe o linie, și este o colecție Mongo. Mongo se referă la baza de date Meteor utilizează, și această nouă înseamnă doar să facem o nouă colecție, se numesc sarcini. În MySQL, acest lucru ar fi echivalent cu Cautati sarcinile de masă numit. Mongo are colectii, nu tabele. Deci doar caută sarcini. Acum, șablon în nostru ajutor în șablonul, toate trebuie să facem pentru a obține toate sarcini este această funcție, găsi și acest bretele gol. Acest lucru este mai special sintaxă Mongo. Exista o multime de documentație on-line pentru modul în care se pot face eficient și într-adevăr util Mongo interogări. Dar așa ceva este bun suficient pentru a găsi doar toate datele. Acum, unul dintre problemele pe care le-ar putea vedea este că nu am adăuga, de fapt date. Deci, ce se întâmplă atunci când ne rula de fapt pasul trei? Să mergem repede în pasul trei și a alerga Meteor. Observați că am avut un alt Meteor Proiectul de funcționare în altă parte, astfel Meteor nu-i place asta. Mă duc să aproape rapid la pe de altă Meteor cu control C, du-te în pasul trei, și executați din nou Meteor. Observați că începe MongoDB deoarece MongoDB este o parte a fiecărui proiect Meteor. Așa se spune cererea mea are erori. E o caracteristică frumos Meteor are. Se face sigur tău HTML este bine validat. Să ne uităm repede la ce acest lucru ar putea fi. Se pare ca am accidental copiat codul HTML greșit. Dacă am salva acum, Meteor repornit în mod automat la server, iar acum aplicația se execută cum era de așteptat. Aviz pentru a rezolva acest lucru, puteți rula doar același fișier HTML de la etapa a doua, copiați-l în trei faze. Ne putem întoarce la gazda noastră locală. Și acum vedem avem noastră să facem lista. Grozav, dar e gol. Noi nu avem de fapt nici o sarcini în baza noastră de date Mongo. Deci, hai sa vorbim despre o câteva moduri prin care putem face asta. Dacă ne întoarcem la terminal, noi poate închide și a alerga Meteor Mongo. Dacă sunteți familiarizat cu modul în care funcționează Meteor, acest lucru dă de fapt tu acces la MongoDB complet pentru Meteor. Observați că trebuie să funcționeze METEOR primul pentru ca aceasta să funcționeze. Deci, dacă am alerga aceasta într-o filă nouă, eu poate merge înapoi la același director. Și acum Meteor functioneaza foarte bine. Acesta este un prompt. Lasă-mă un pic face mai mare astfel încât să putem vedea. Aceasta pare un pic diferit decât ceea ce ar putea fi folosite pentru tine Nu într-adevăr nevoie pentru a utiliza Mongo. Ideea de mine aici este astfel încât să puteți utiliza JavaScript. Dar daca esti curios, API Mongo nu utilizați SQL, Structured Query Language. Acesta utilizează propria sa limbă pe care seamănă mult cu JavaScript. Foarte repede, putem găsi tabelul via db.tasks. Și îmi spune dovedește dacă vom alerga găsim, fel de similar cu ceea ce am avut cu Meteor, putem încărca toate elementele. Problema este, noi nu facem de fapt, au orice sarcini definite. Deci nu le pot obține. Putem introduce, totuși. Deci, putem rula inserați cu inserție comanda. Și noi dau un obiect, și ne-am asigurați-vă că formatul este ceea ce ne așteptăm. Dacă ne-am uitat la etapa a doua, am văzut că fiecare sarcină a fost un obiect cu un text ca o cheie și indiferent de de a face articol a fost ca o variabilă. Deci, putem face ceva aici. Putem să-l introduce o sarcină sunat eu vin de la Mongo. Și noi apăsați Enter, și se execută. Putem rula găsi din nou, și noi a se vedea că există un obiect aici. Mongo îi atribuie un act de identitate, pe care le nu într-adevăr nevoie să vă faceți griji. Ce e important pentru tine este de date ai pus în, este datele pe care le ieși. Să ne întoarcem la site-ul nostru, și hei, sarcina noastră încărcat. Și puteți vedea că deoarece Meteor este foarte inteligent și întotdeauna reîmprospătează pentru tine, am nu trebuie să atingă pagina. Acesta încărcate automat. Să facem un cod în JavaScript deși a face acest lucru. Ca avem nod în spate termina de a executa afară JavaScript, putem rula, de asemenea, JavaScript direct în browserele noastre. Puteți face acest lucru printr-o funcție numit Controlați Element. Dacă faceți clic dreapta pe un secțiune a paginii, există o opțiune numit Controlați Element. Dacă rulați un browser-ul Safari ca, tine poate fi necesar pentru a permite dezvoltatorului tău Instrumente înainte de a te această facilitate. Ce ne pasă este consola. Deci, vom merge doar la consolă în partea de jos. Acum putem rula orice JavaScript aici, la fel ca JavaScript Fișierele am arătat în exemplul js. Dar acum să ne uităm la sarcini. Putem executa comanda noastră. Și sperăm că voi fi în stare să facă un pic mai mare, astfel putem vedea toți. Dacă vom rula tasks.find, și veți vedea că acest lucru este exact același cod că utilizările de fișiere JavaScript în etapa trei, acest task.find. Putem rula același lucru, și acum avem niște chestii ciudate. Cum ajungem de fapt datele? Ei bine, trebuie să rulați această comandă numit aduce. Acest lucru este foarte util pentru depanare. Ce te aici e un cursor, iar acest lucru este un mod frumos Meteor are Date preiau optimizate. Acest cursor are toate caracteristicile de actualizarea live și un refresh al paginii atunci când ceva sa schimbat. Dar nu ne va primi datele. Putem obține datele prin intermediul aduce. Și vedeți, avem un obiect, și e la fel ca ceea ce am avut în Mongo, cu un ID și textul am pus la. Deci, cum putem insera un element în Meteor? Ei bine, avem doar sarcini. Și apoi putem rula același insert comandă, oferind un dicționar sau un obiect cu același format, textul și apoi am venit de la consola. Aruncati o privire peste pentru că atunci când am face acest lucru, se arată pe site-ul în mod automat. Observați că puteți pune orice vrei în aceste elemente. Nu trebuie să au o structură fixă. Am putea avea un egal cu Numărul trei și b egală cu false. Și toate lucrările. Nu pot alege chiar să nu includ un text la toate. Acest lucru nu este doar recomandată pentru că, deși atunci Meteor nu vor ști ce să afișeze. Dar, în fiecare caz, am primi un ID, și asta e ID-ul obiectului puteți folosi. Așa cum am continua cu pasul patru și cinci pas, tutorial vă va arăta moduri in care puteți crea elemente de UI folosind HTML știi să a crea diferite sarcini. Să ne uităm la pasul patru foarte repede. Vom vedea că am adăugat o secțiune despre evenimente. Șabloane poate avea ajutoare, care ne primesc date. Dar poate apela, de asemenea evenimente. Și acest lucru este în cazul în care lucrurile devine util, deoarece evenimente sunt ceea ce se întâmplă atunci când faceți clic pe lucruri diferite pe site-ul tau. Aici, codul nostru este de a spune ne pentru a adăuga acest eveniment. Adauga o atunci când ați trimis ceva cu noua sarcină de clasă. Ceea ce avem aici este un selector CSS. Deci doar caută un HTML element care are noua sarcină de clasă. Și se pare pentru eveniment, cum ar fi prezenta. Alte evenimente includ click, hover, dublu clic, similar cu ceea ce veți obține în HTML normal. Ce poți da aici este acum o funcție. Și tu poți avea ta cod în această funcție. Această funcție este ceea ce ajunge să asistent numit când trimiteți acest nou sarcină. Să ne uităm la codul HTML doar ca noi înțeleg ce această nouă sarcină este. Am adăugat o formă aici cu clasa de sarcină nouă. Și are o intrare care ia textului. Și acest lucru este în cazul în care ne-am va adăuga noi ne sarcini. Să facem pas patru în site-ul pentru a vedea cum arată. Putem iesi mai întâi de MongoDB am avut din precedent nostru exemplu cu control C. Și să-l schimbe în etapa de patru director. Vom rula din nou Meteor pentru a porni serverul. Și, din păcate, am avut Meteor rulează în alt terminal. Așa că Mă duc la asigurați-vă că acest închis. Să renunțe la această schimbare și la o parte patru, etapa patru. OK. Acum, codul nostru Meteor se execută. Și puteți vedea că-l actualizat, fără ne chiar nevoie să încărcarea paginii. Ce sa schimbat aici este acum că noi nu avem nici sarcini, dar avem o formă aici, aceasta caseta de text, pentru a adăuga noile noastre activități. Și putem tastați sarcina noastră aici. Eu vin din pagina HTML. Când m-am apăsați Enter, se au prezentat. Putem vedea ce sa întâmplat la fel de definit de codul JavaScript. Ce această funcție făcut a fost ia textul din formular, și apoi a sunat tasks.insert, așa cum am făcut-o în consola. De asemenea, ei au ales pentru a adăuga o dată createdAt. Acesta este modul în care ar fi specifica ora curentă. După aceea, reuseste sa respinga forma de a face vă că valoarea este un șir gol. Și apoi îl numește return false la asigurați-vă că nimic altceva se întâmplă. Când vă întoarceți fals de la un formular eveniment, care se oprește executarea. Spune un formular are o acțiune, ca la o pagină PHP prezenta. Dacă n-ai fi întors fals, ai return true. Aceasta ar sfârși prin a face această cerere. Intercepteaza false ea și oprește-l chiar acolo. Așa că a fost un pic demo despre cum functioneaza Meteor, și ne-am urmărit tutorial pentru un timp. Și vă puteți vă rugăm liber să continue să facă acest lucru. Exista o multime de resurse, iar tutorialul este de fapt doar foarte bun despre explica ce se întâmplă. Eu vreau să vă arăt acum, în în câteva minute le-am lăsat, Care sunt unele din Caracteristici cooler de Meteor, și care sunt unele dintre cele mai pachete mai util. Unul dintre cele mai mari lucruri despre Meteor este că veți avea un sistem pachet. Puteți încorpora cu ușurință cod că multe mii de dezvoltatori au scris în întreaga lume în proiectul dumneavoastră Meteor. Un exemplu în acest sens este ceea ce s-ar putea face în etapa nouă din tutorial, în cazul în care pe care încercați să adăugați conturi pentru proiectul dumneavoastră Meteor. Dacă avem un PHP CS50 proiect, am avea să se bazeze pe cadrul sau propriul codul nostru de a face sigur ne ocupăm în siguranță, parole și nume de utilizator și stocarea în baza de date și tot de asta. Se pare Meteor are ceva pachete pentru a face asta pentru tine, și de a face foarte ușor. Ce putem face este să adăugați câteva pachete. Deci, haideți să facem acest drept acum în consola noastră. Am de gând să renunțe la proiect și chiar acum du-te în simplu-todos. Acum, simplu-todos este proiectul pe care ați va avea după ce se face cu pas 11 sau 12 pas, la sfârșitul acestui tutorial. Și să ne uităm repede la ea pentru a vedea care sunt diferitele caracteristici pe care le avem. Să asigurați-vă că rulează. Uneori este nevoie de un timp pentru a actualiza, dar aici este. Trebuie opțiunea noastră de a ascunde sarcini complet, și putem conecta. Și acest lucru a fost făcut cu pachetul Meteor. E minunat. Am username acum și semn parola. Dar dacă am vrut să adăuga un alt fel de mecanism de autentificare? Să spun că am vrut să vă conectați în contul meu Meteor. Am de gând să ruleze meteor ADD, și această este sintaxa pentru adăugarea de pachete. Pot spune conturi, și accounts.meteor. O să găsească acum pachetul și-l încarce. Puteti vedea ca nu am găsit chiar numele pachetului. Deci, cum ai aflat despre pachetele? Ei bine, există o mare site-ul, si voi disponibil de oameni Meteor, numit atmospherejs.com. Atmospherejs, un cuvânt, punct com, este un depozit mare pentru identificarea toate Meteor pachetele din depozit. Am sa cautati conturi, și apoi o să-mi arate toate lucrurile relevante, toate ambalajele, cu numele contului. În același timp că încarcă, putem încerca adăugarea unor alte pachete. Poate că pachetul Meteor nu este de lucru chiar acum, dar eu pot adăuga Facebook. Pot adăuga contul și apoi executați din nou proiectul Meteor. Odată acest lucru începe, să vedem ce sa schimbat pe site. Puteți see-- I s-ar putea Trebuie să-l refresh aici. Am un buton de configura Facebook Login. Și aici, am tot instrucțiunile Meteor a pregătit pentru tine pentru crearea unui aplicație Facebook. Și poți folosi asta informații pentru a adăuga ID-urile tale. Odată ce a făcut, veți avea Facebook Login lucrează în aplicația. Mă duc să se un ID aplicație și un secret, doar pentru a vă arăta cum acest lucru ar putea funcționa. Veți avea nevoie de un cont de Facebook de a folosi Facebook opțiunile developer. Lasă-mă să găsi rapid Chei Meteor care sunt necesare. Eu am un alt proiect Meteor că am de gând să folosească, și eu sunt doar de gând să ia cheile de la acest fișier. Și odată ce l-am găsit, voi fi doar în măsură pentru a copia aceste taste în Facebook mea. Deci, aici este o cheie. Și acest lucru este secret. Tu nu ar trebui să fie schimbul de acest cu oameni. Și apoi dau secretul app. Și acest lucru este atât de Facebook știe că ești. Și salvați configurația. Cred că în procesul I s-au oprit meu app Meteor. Deci, vreau doar să facă sigur că e încă acolo. OK, hai asigurați-vă că serverul nostru Meteor se execută astfel încât pagina web este pornit. Observați dacă ne oprim Meteor serverul, pagina este încă acolo. Pur și simplu nu va mai actualiza. Serverul Meteor este necesar pentru a vă asigura pagina este viu. OK, l-am prezentat, iar acum Pot semna cu Facebook. Acum e doar o chestiune de având un pop up pe Facebook și punerea în contul dvs. informații și exploatare forestieră în. Odată ce ai făcut asta, Facebook ar putea nag tine pentru ceva mai multă siguranță. Deci, ne vom opri doar aici. Ideea este că, atunci când ați terminat cu care, veți avea Facebook Login. Meteor are o grămadă de alte pachete de asemenea. Te poti autentifica cu Google+. Te poti autentifica cu GitHub. Vă puteți conecta cu Twitter. Sau dacă veți căuta, veți găsi o mulțime de alte lucruri ca Meetup, LinkedIn, și Meteor Developer. Deci, Meteor Developer a fost Pachetul Căutam. meteor adăuga conturi-meteori-developer. Între timp, am De asemenea, doresc să recomande alte oferte de proiectele dumneavoastra. S-ar putea dovedi util să includ pachetul de jQuery. Acest lucru vă permite să folosiți jQuery în clienții dumneavoastră. Tocmai ai putea face cu o linie, și Meteor va asigurați-vă că sunteți la curent pe jQuery. De asemenea, recomand Houston: admin. Aceasta este un fel de phpMyAdmin un fel de instrument de MongoDB ta. Acest lucru vă permite să editați datele destul de ușor fără a fi nevoie pentru a merge la shell Mongo, ca și cum aș fi făcut mai devreme la seminar. Deci, acum că se execută, să rulați Meteor din nou și să vedem ce putem face. Observați că adăugarea unor pachete ar putea avea să le prezinte unele avertismente. Nu va fi nevoie să vă faceți griji despre asta cu Houston. Deci, putem avea acum optiunea pentru a configura Meteor admin. Și ei vă dau direct dacă doriți să setați asta. Putem, de asemenea, acum merge la / admin. Acest lucru este adus la tine de pachetul Houston. Și acest lucru este Meteor interfață admin. Tu doar crea un Contul admin, cum ar fi așa. Și dacă încărcarea paginii, s-ar putea au unele colectii apară. Este un instrument foarte util, si il recomand cu tărie. Puteti vedea asta deoarece houston a fost avertizat de către unele erori, nu avem nicio colecție apară chiar acum. Modul în care ar trebui să utilizați houston este asigurându-vă că această funcție devine denumit în contul dvs. simplu-todos. Deci, houston nu Știi ce sarcinile mele sunt. Am înființat o Mongo de colectare a numit sarcini. Să mergem în simplu-todos și doar asigurați-vă că în JavaScript, am adaugat sarcinile la colectiile noastre. Acum am salvat, și este construirea aplicația, răcoritoare. Și să vedem. Acum avem anumite sarcini. Și putem adăuga unele noi sarcini. Dar dacă vrem să adăugați sarcini, hai să facem cu aplicația în sine. Acum putem adăuga unele date. Bună, aceasta este o sarcină. Se pare un fel de ciudat ca nu vedem orice sarcini. S-ar putea să doriți să verificați dacă avem vreun erori aici, sau poate în altă parte. Dacă mergem în admin, care pare ciudat. Dacă trageți magazia după acest seminar, Mă voi asigura că simplu-todos funcționează cu Houston. Din păcate, nu pare să fi de lucru în acest moment. Mai sunt și alte întrebări? Houston normal este un instrument care functioneaza foarte bine. Houston este specific un pic buggier decât celelalte, dar eu nu-l recomand, atunci când funcționează. Da. Audiența: Ce se poate face cu pachetul de Facebook Odată ce un utilizator este conectat Facebook lor? ROGER ZURAWICKI: Din păcate un utilizator autentificat, puteți efectua apeluri la API Facebook. O mulțime de care se află mai mult în cum Facebook va deschide API lor. Meteor, asigurați-vă că au conexiunea. Dar totul după care este o problemă de a învăța cum să folosească API Facebook. Audiența: [neauzit]. ROGER ZURAWICKI: Bine. Vă mulțumesc foarte mult pentru acest seminar CS50 în Meteor. Dacă aveți întrebări, puteți să-mi e-mail la adresa mea de e-mail enumerate mai jos seminarului. Și voi fi fericit să răspunde la întrebările dumneavoastră. Voi fi, de asemenea, la CS50 Hackathon ar trebui aveți nevoie de ajutor cu proiectele dumneavoastră Meteor. Vă mulțumim pentru vizionarea.