[MUZIKO Ludante] Roger ZURAWICKI: Saluton, mia nomo estas Roger Zurawicki, kaj Mi estos kovrante la CS50 Meteoro seminario. Meteoro estas nova kadro dediĉita al la novtipa retejo, Ne la PHP farante petoj tien kaj reen speco de retejo kiun ni vidis en la PHPP aro, sed la pli dinamika Ĝavoskripto partoj de la retejo. Aĵoj Meteoro povas fari inkluzivas Live Aktualigante kaj tuj komuniki inter uzantoj de la sama retejo. Por tiu seminario, ni havas kodo gastigis ĉe mia GitHub. Vi povas iri al tiu retadreso kaj elŝuti ĝin. Se vi scias kiel uzi Git, vi povas kloni la deponejon. Se vi ne scias kiel uzi GIT aux ne uzis GitHub, tio tute bone. Mi montros al vi vere rapide kiel ni povos iri al GitHub, kaj tie estas eblo por elŝuti zip dekstra tie. Unufoje vi elŝuti ĉi dosierujo, vi povas komenci ludi kun nia kodo. Pliaj informoj pri Meteor troveblas ĉe meteor.com. En la Seminario dosierujo, mi reale havi iom Meteoro projektoj povas uzi. Unu el la dosierujoj kiujn ni havas en nia seminario projekto estas la todos app. Do se mi iras en ĝin mi, havi Meteoro instalita. Do kuri ĝin, mi nur bezonas tajpi Meteoro, kaj Meteor instalos. Kiel vi povas vidi, ni devas certigi ni instalita Meteoro. Do mi simple tuj kuri lin pli tempo certigi ke Meteor dece instalita. Dum mi havas Meteoro instalo, mi povas montri vin iuj vivas donas de Meteoro retejoj irante vivas nun en la interreto. Mi havas la demo de nia app. Vi povas aliri gxin cxe la jena adreso. Tiu estas la fari app kiu ni havi en nia seminario dosierujo. La URL cxar tio rozu-rabbit.meteor.com. Vi vidos ke Meteoro efektive gastigi viajn Meteoro projektoj por libera. Kaj fine de la seminario, vi povos fari tion ankaŭ. Jen fari lerta app. Kaj vi povos enskribiĝi, kreu kontoj, kaj aldoni taskojn. Vi povas krei konton kiel tia. Kaj nun, kiam vi havas konto, vi povas aldoni taskojn. Ekzemple, unu el la taskoj mi eble bezonos iri repreni miajn lavbutiko. Kaj se vi estas sur ĉi retejon online, vi reale vidi ĉi taskon sur via komputilo en reala tempo. Mi povas montri al vi rapidan demo de tiu malfermante rozu-kuniklo en alia langeto per la sama retadreso. Kaj ni vidas ke la samaj datumoj venas supren. Ni povas ankaŭ kuri ĝin en malsama retumilo. Diru mi kuri ĝin en Safaro. Tiel ni ne estas ensalutinta. Do ni havas la samajn Meteoro app, kaj iam ĝi ŝarĝas, ni vidos la samajn datumojn ni faris en la unua unu. Kiel vi povas vidi, mi ne estas ensalutinta tie. Kaj kiam la aŭdienco ĉekojn datumoj, ĝi ĝisdatigas ĉiujn retumiloj samtempe. Tiu estas unu el la vere malvarmeta karakterizaĵoj pri Meteor. Kun preskaŭ neniu laboro, vi havi vivas ĝisdatiganta app ke ŝanĝoj en ĉiuj via mekanismoj samtempe. Se mi kontroli la markobutono tie Miaj fari lerta, ni devos, en mia alia navegador Chrome, la listero kontrolis malproksime. Kaj ĉi tio okazas instantáneamente. Bone. Do ĝi aspektas kiel Meteoro instalado estas preta nun. Do nun ni reiros al la todos app kaj kuri ĉi loke. Se vi havas Meteoro projekto, vi povas nur ruli ĝin kun la komando Meteoro. Unufoje vi fari tion, Meteor faros kelkajn preparado certigi ĉiuj via kodo estas en ĉeko. Kaj tiam diros al vi, ke la projekto estas preta por esti servata. Vi eble bezonas por permesi vian fajroŝirmilo, se via komputilo blokoj vi. Do kio Meteoro diras al mi nun estas ke ĉe tiu retejo loka al mia komputilo, mi povas vidi kion ĉi Meteoro projekto estas. Notu ke ĝuste nun, mia app estas ne atingeblaj al la interreto. Ni kovras kiel alporti vian Meteoro app al vivas ejo iom poste. Do mi simple tuj kopiu ĉi URL nun kaj iru en Google Chrome. Kaj jen estas la fari listo de la ekzemplo. Vi povas vidi lin implementado kelkaj pli karakterizaĵoj tie. Ni havas malsamajn pestañas, ni havi la sama konto karakterizaĵoj, kaj ni povas aldoni novajn listojn. Nun, unu el la vere malvarmeta trajto pri Meteor estas kiu ne nur povas ĉi labori en via retumilo, sed vi povas krei ankaŭ denaska iPhone kaj Android apps tra ilo nomita PhoneGap. Do iuj projektoj venos antaŭ-agordita por ekzekuti sur iOS, kiel ĉi todos app. Do ĉiuj mi bezonas fari kuri ĝin en iOS estas tajpi Meteoro, kuri, kaj tiam iOS. Kiam mi faras tion, Meteor preparos la pakon denove. Kaj tiam, unufoje ĝi estas preta, ĝi estos ŝarĝi la iOS simulilo en mia komando. Notu vi nur povas kuri iOS apps se vi havas Mac komputilon. Vi povas kuri via apps sur Android en ĉiuj platformoj. Do nun vi povas vidi, ke mia iPhone simulilo elkreskis sur mia ekrano. Kaj en nur momente, ĝi malebligos ŝarĝi kun la app. Se ni faras ĝin nur iom malgrandaj por persvadi sur la ekrano, ni vidas ni havas nia iPhone app. Kaj ĝuste tial ni ne akiri konfuzita, ni faru certe ni estas en la sama retejo, loka gastiganto 3000. Do ĉi tie estas ekzemplo de la Meteor app havas mi, la todos app, kurante ambaŭ sur telefono kaj sur navegador retejo. Kiam mi ŝanĝas stuff en la navegador retejo, ĝi tuj iras al la telefono. Kaj mi povas forviŝi ion telefone, kaj tio ŝanĝas en la retumilo. Nun, kutime por krei denaska telefono app por iOS aŭ Android, vi bezonas scii ĉu Java aŭ Objective C. La teknologio Meteoro uzoj por permesi JavaScript por kuri kiel via app nomas PhoneGap. Kion via app esence estas estas retumilo. Kaj Meteoro pritraktas ĉiujn la malfacilaj partoj implikitaj por alporti ke retumilon al via iPhone aŭ via Android aparato. Vi povas vidi ke la uzulinterfaco estas glataj, kaj gxi aspektas kaj sentas tre multe kiel denaska app. Rimarku ke se mi iru al la hejmo ekrano nun, mi ankaŭ akiras ikono. Tio ne estas retejo kiel oni kredus trovi en Safaro. Tiu estas lia propra app. Vi povas instali kaj forigi ĝin se vi ŝatus. Ni povas koncize montri vin kio la kodo por tiu speco de todos app similas. Se vi rigardas en la todos dosierujon, vi vidos ke estas multaj dosierujoj. Sed super la kurso de la seminario, ni kompreni kion ĉiu dosierujo estas uzita por. Ni iru en la stacion tiel ni povas vidi la dosierojn iom pli bone. Mi iras al premi Kontrolon C halti la servilo, kaj nun mi estas reen en la todos app. Mi havas malsamaj dosierujoj tie, kiel la kliento dosierujo, la servilo dosierujo. Kaj tiuj dosierujoj simple signifas ke ĉio en la kliento dosierujo prenas ekzekutita en via retumilo. Ĉio en servanto dosierujo prenas ekzekutita en servanto. Kion mi volas atentigi el estas kiu kion ni devis kiam ni havis nian telefonon kurado kaj nia navegador retejo, tiuj estis klientoj. Sed kio etendiĝanta stacion, tio estas la servilo. Ni havas aliajn dosierujojn, kiel lib, kio estas biblioteko de kodo, kiel via helpanto funkcioj, kiujn oni povas uzi sur ambaŭ la kliento kaj la servilo. Kaj tiam vi havas publikan dosierujo kaj rimedoj dosierujo necesa por interesigi viaj bildoj kaj aliaj CSS ŝarĝita. Se vi Meteoro instalita, ni volas daŭrigi kun la lernilo por Meteor. Vi povas iri al ĉi URL, meteor.com/install, akiri la komandlinio ke mi montris al vi, ke instalas Meteoro. Ni iros tra la unua kelkajn paŝojn por akiri pli bonan sentas pri kiel instali Meteoro. Sed unue, mi kredas ke estas grave ke ni revizii iom de Ĝavoskripto. Montri al vi kelkajn ekzemplojn de kiel nia C scio povas traduki al JavaScript, mi kreis kelkajn ekzemplojn. Ili estas en la js dosierujo. Do se en la seminarioj leterujo vin rigardu, estas dosierujo nomita js. Kaj en tie, ni havas kelkajn ekzemplojn. Ni malfermu la unua Ekzemple kaj vidi tre rapide. Kion ni vidas estas via normo saluton mondo komando. Rimarkas en C ke vi havi sufiĉe da linioj. Kaj kiel CS50 studentoj scias, ni bezonas ĉefan funkcion, kaj ni devas inkluzivi la normo / El- biblioteko por nomi printf. Ni rigardu kiel JavaScript komparas. Mi iras malfermi ex1.js. Komentis ekster estas kion la C kodo devus aspekti, kaj la linio malsupre estas ĉiuj vi bezonas kuri en nodo. Vi ne bezonas ĉefa funkcio, vi ne bezonas por inkludi ajnan dosierojn, kaj vi ne bezonas reveni. Vi nur voki console.log. Ĉi tiu estas la ekvivalento de via printf. Kaj ĝi portas la saman argumentoj printf deziris. Kaj por ruliĝi ŝin, anstataŭ kuri fari EKS1, vi simple vokas Nodo ex1.js. Vi skribas Nodo kaj tiam la dosieron, kaj ĝi akiras kuri. Ĝi ne alvenas kompilita. JavaScript estas interpretita lingvo. Do ĝi ne bezonas esti kompilita antaŭ ĝi estas kuri. Se mi volis kuri ex1.c, Mi devas fari ĝin unue, kaj tiam mi povas kuri la ruleblan por akiri la saman eligo. Ni rapide kovri iuj aliaj JavaScript konceptoj. Ni rigardu ekzemple du. En ex2.js, en ex2.c, ni povas vidi, ke ni havas iom da kodo. Lasu min rapide iri al pli bona tekstoredaktilo kiu montros tiujn novaj linioj iom pli bone. Bone. Ni tie havas ekzemplon 2.c. Ĉi tie ni havas malsamajn tipojn ke ni presi ekstere. Kaj kiel ni scias, printf prenas malsamaj procentoj argumentoj aliri malsamaj pecoj de datumoj. Se ni deziras presi ŝnureto, ni nomas% s. Se ni volas nomi flotante punkto numeron, ni nomas% f. Kaj ne estas facila maniero por voki Buleaj por lia vera aŭ falsa valoro. Sed se vi uzas% d, vi povas akiri a 0 aŭ 1 por falsaj kaj veraj. JavaScript estas iom pli agrabla por ni. En JavaScript, ni rigardu la malmultaj diferencojn ni havas en ĉi tiu dosiero. Unue, vi rimarkos ke en C ni devas pravalorizi ĉiu variablo kun tipo. S estas char stelo. Estas kordoj, kaj tio ne povas esti iu alia tipo. N estas kaleŝego. B estas bool. Sed en JavaScript, tie estas dinamikaj tipoj. Tio signifas ke vi ne faru bezonas diri JavaScript kio tipoj viaj variabloj estos. Vi nur diru var por variablo, la nomo de la variablo, kaj tiam ĝia valoro. Do oni var povas esti io vere. Ĝi povas esti kordo. Ĝi povas esti glitpunkta nombro. Ĝi povas esti karaktero. Ĝi povas esti Bulea. Kaj konzolo log funkcias iom malsame. Se vi deziras presi numero, vi nomas% d. Sed plej valoroj povas esti presita kiel kordoj ĝuste fajnaj. Ni kuros ĉi en Nodo por vidi kio okazos. Mi povas voki Nodo ex2.js, kaj ni preni printf kun la valoroj CS50, N kiel la flosanta punkto numeron, kaj tiam B kiel la Bulea konvertita al ĉeno vera. Kio pri se ni faris ekzemple 2.c? Nu, ni ankoraŭ havas iujn pli ĝenoj kun printf. Rimarku ke la glitpunktaj nombro devas esti formatita korekte, kaj ke la bulea neniom simple montriĝos kiel vera aŭ malvera. Bone. Nun ni rigardu ekzemplon tri. En ekzemple tri, ni montras kiel vi uzus por buklo. Fakte, ĝi estas tre simpla. Unu el la belaj aferoj pri JavaScript estas ke ĝi estas C bazita. Tio signifas ke multaj de viaj kodo aspektos tre similaj kaj sentas tre la sama. En a por buklo, la sola afero kiu vere ŝanĝis tien Estas anstataŭ int i, ni havas var i. Ni ankoraŭ povas atribui ĝin taksi nulo, kontrolu ke ĝi estas malpli ol kvin, kaj pliigo ĝin per unu kun la ++ operatoro. Ni nomas console.log sur i, kaj ke presos ni numeron kun ĉiu linio. Ni kuras vere rapide vidi kio ĝi eligas. Ni ricevas novan numeron en ĉiu linio. Alia afero, kiun mi volas vin rimarki kun console.log estas vi ne devas skribi backslash n por la nova linio. Console.log presos ĉiu en lia propra linio. Tiu estas bela trajto ke JavaScript donas al ni. Nun ni malfermu ekzemple kvar. En ekzemple kvar, unue en la C, Ni postulas ke estu kelkaj funkcioj. Rimarku ke ni devas deklari la funkcioj antaŭ ni uzas ilin en ĉefa. Se ni havis ĉefan unua kaj tiam adicii kaj tiam alte, fari, tin! aŭ GCC estus donu al ni eraro dirante ke ĝi ne scias kion estas alta. Ĝi ne scias kion add estas. Do en C, vi devas esti postulema pri la organizo, en kiu vi nomas vian funkciojn. Ni rigardu kiel vi povas tion fari en JavaScript. Ni havas malsamajn dosierojn ĉar tie Estas kelkaj malsamaj manieroj por fari tion. Unu metodo estas preskaux rekta traduko. Ĉar funkcioj en C reveni tipoj, kaj JavaScript vere ne scias aŭ zorgo pri kio tipo vi revenos, vi ne skribas tipo. Anstataŭe, vi nur bezonas skribi funkcio, kaj ĉiu estas bela multe la sama kiel antaŭe. Kiam vi havas ŝanĝiĝeman, kiel en aldoni, ni nur bezonas skribi x kaj y. Ni ne bezonas diri x estas int. Ni ne bezonas diri y estas int. Ni revenas kun la sama sintakso. Por altaj, ni raportos per funkcii anstataŭ malplenon. Rimarku ke, cxu ĝi estas malplena aŭ ne-malplena, ĝi estas ankoraŭ ĉiuj sama funkcio. Kaj ni simple ne metu ion en krampoj, kaj gxi aspektas tre multe kiel la C-kodo. Kaj sube, ni povas nomi ĝin sube. Se ni rigardas ekzemple 4b, ni rimarkos ke mi ŝanĝis kelkajn aferojn. La sola afero kiun mi ŝanĝis vere kvankam estas la ordo. Ni havas la saman funkcioj, sed nun ili estas deklaris post ili estas uzataj en console.log kaj altaj sur linioj 18, 19. Se vi faris ĉi tion en C, fari ĵetus eraro. Ĉi tie, tio funkcias nur fajna. Kaj mi povas montri al vi tion per nomante Nodo sur 4b ekzemplo. Alia vojo ni povas nomi funkcioj estas per ŝparado funkcioj kiel variabloj. Kiel mi diris, ŝanĝiĝema povas havi ajnan tipon. Unu el la tipoj ŝanĝiĝema povas havi estas funkcio. Do se vi rigardi ekzemple 4c, kion mi ŝanĝis jen var aldoni anstataŭ funkcion add. Kaj nun aldoni egalas funkcio. Tiu funkcio ĉi tie estas anonima. Ĝi ne havas nomon, do estas nur funkcio kaj tiam la krampoj. La sintakso post tio ne ŝanĝiĝas, sed vi ja devas teni en menso ke vi havas variablo kiu vi estas stokante la funkcio enen aldoni, kaj ŝanĝiĝemaj ke vi stoki en alta. Ĉar aldoni kaj altaj estas nun variabloj kaj ne funkcias, iu ŝanĝas. Tiu estas komuna cimon mi vidas en multan popola JavaScripts, kaj io teni en menso. Kiam mi kuras ĉi, vidu kio okazas. Mi ricevas eraron. Ĝi estas jene nedefinita ĉe tiu punkto. Do estas dirante Ne scias kion aldoni estas. Ĉar nun aldonas ne pli funkcio, aldoni estas variablo. Kaj vi ne reale donita aldoni valoron Tamen kiam vi uzas ĝin. Tio alportas nin al ekzemplon 4d, kie se vi volas uzi variablojn kiel funkcioj, vi nur bezonos por certigi ke ili preni la valoro antaŭ ol ili estas kutimitaj. Ni movi antaŭen al ekzemple kvin tiam. Tie, ni parolas pri structs en C. En C, structs havas ĉi fiksa strukturo al ili ĉar vi devas deklari ilin antaŭ vi uzas ĝin, kaj vi diras Mi havas studenton, kaj ĉiu studento havas akurate unu nomo, unu jaro, unu genro. Ĝi devas havi ĉiu el ili. Ne povas esti iu alia valoroj, kaj ili devas esti specifaj tipoj. Tiam ni povas pravalorizi la struct en tiu bela sintakso ĉar ĝi scias la ordon. Do sciu ke Roger estas nomo. Ĝi scias ke 2016 estas jaro kaj M estas varo ĉar ni rakontis ĝin ĉi listo estas struct studento. Kaj tiam vi povas presi ĝin, alirante s.name. Vidu kiom ni volus konverti ke al JavaScript. Rimarku ke S estas nun variablo, kaj estas neniu tipo. Estas nur var denove. Ĉar ĝi ne gravas se la Tipo de tiu variablo estas puntero, ĝi estas struct, aŭ io alia. Ni havas iomete malsaman sintakson. Tiu sintakso estas la objekto sintakso. Vi eble vidis lin en JSON. JSON fakte staras por la JavaScript Objekto Skribmaniero. Jen kiel vi difinus celoj en JavaScript. Ni havas ŝlosilon, kiu estas la valoro, kiel nomo. Kaj ni donu gxin valorojn sur trans la dupunkto. Kaj unu afero teni en menso estas vi ne bezonas havi nomon kaj jaro kaj genra por objekto. Objekto ne povas havi valorojn. Ĝi povas havi kiel multaj kiel vi ŝatus. Ni povas uzi tiujn celojn en nur la sammaniere ni uzus struct, s.name. Ni povas ruli ĝin vere rapide farante nodo ekzemplo 5.c. Ni ne povas efektive ruli C dosieron en nodo. Ĝi ne scias kion C estas. Ĝi nur scias Javascript. Kiam ni ruli la ex5.js, ni preni la valoro, kiun ni atendis. Ni movi antaŭen al ekzemple ses. Ĉi tie mi nur deziras paroli iom iom pli pri Ĝavoskripto arrays ĉar ili estas iom malsama ol kio vi estas kutimi en C. arrays estas notigas, Ne kun la krampoj kiel en C, kun la krispa krampoj, sed krampoj. Vi povas havi malplenan tabelo, kiel arr en linio kvar. Vi povas havi arrays kun multnombraj valoroj. Kaj vi aliron ilin ĝuste la sama maniero en C. Supren al linio sep, ĉiu ŝajnas bela simpla. Unu minora diferenco estas ĉi tie en linio 10. La vojo vi akiras longitudon de tabelo estas nur nomante .length. Tabelo povas reale esti traktita kiel celo, kaj tiu objekto havas longitudon propraĵo ke vi nomas akiri la longo de ĝi. Rimarku ke ĉi tiu estas malsama en C ĉar en C vi devas scii la longo de vian celon antaŭ tempo. Do alia bela afero pri arrays estas ke vi povas havi malsamajn tipojn. Se vi havas tabelo en C, tie estas matricoj de specifa valoro, ĉu struct montrilon aŭ flosas aŭ [inaudible]. Ĉi tie oni povas havi malsamajn valorojn. Mi unue devis glitpunkta nombro, tiam Bulea, tiam alia entjero. Kaj fakte, oni povas ŝanĝi tipoj ankaŭ. Rigardu linio 16. Array du ŝanĝas de esti numero, entjero, al ĉeno. Alia bela afero pri arrays estas ĉi tie ĉe linio 19, ili havas senfinan grandecon. Vi povas simple diri Mi volas la centa elemento esti la kordo legit. Kaj ĉi tiu ne ŝajnas fari senso ĉar la tabelo nur havas spacon por tri elementoj, do la fino devus esti du. Sed kiam vi faras tion, ni vidi kion tabelo tri iĝas. Ni povis ruli ĉi rapide kun nodo ekzemplo six.js. Ni havas tian vere longa tabelo, kaj kion okazas Estas ni havas la unuajn malmultajn elementojn kaj tiam faskon de spacoj ĝis ni preni nian kordoj. Ĝavoskripto plenigas en la array kiel estas bezono. Ni fine iri al nia lasta ekzemplo. Jen ni havas liston de malsamaj fakuloj. Mi volas paroli iom iom pri kelkaj plaĉaj aspektoj de por maŝojn en JavaScript. En C, por maŝojn estas speco de limigita. Ili havi fiksa strukturo, kie vi havas variablo, vi havas kondiĉon, kaj tiam vi fari ion ĉe la fino de la banto. Kaj kompreneble tio funkcias en JavaScript, kiel ni vidis en la antaŭaj ekzemploj. Sed ni ankaŭ havas belajn formojn fari tion en JavaScript. Tio nomiĝas foreach buklo. Pardonu, ni iru reen por ekzemplo sep tien. Ni povas ankaŭ diri sekcio estas listo. Do donu al mi ĉiun i aŭ ĉiun indekso en tiu listo. Tiel ni povos atingi la lernanto per simple nomante sekcio de i. Do ĉiuj la kodo de opcio i egala al nulo kaj certigante i estas malpli ol la longo kaj aldonante al mi ĉiufoje, tio estas flegante vin prefere bonguste kun tiu foreach buklo. Ne nur fari foreach maŝojn labori en lertaj aŭ sensilo, Ili ankaŭ laboras en celoj, kio estas ankaŭ bela. Vi povas ricevi la nomon de ĉiun posedaĵon nur prenante vortaron aŭ objekto, kiel lernanto, kaj tiam nur diras donu al mi ĉiun klavon. Ŝlosila estus tiuj propraĵoj, nomo aŭ domon. Do kio okazos tie estas ke ni presi unue la nomo kaj poste la domo de ĉiu studento. Mi povas kuri ĉi en Nodo vere rapide montri vin. Ni ricevas unue la C stilo por banto, kie ni preni ĉiu objekto estante presita eksteren. Kaj tiam ni havas la Ĝavoskripto stilo, kie vi povas simple presi ĉiu klavo kaj taksos individue. Bone. Nun ke ni jam kovris Node.js, furaĝo Ni pretas por starti kun Meteor. Kiel mi diris, Meteoro faris grandan laboron verki iun preta ekzemploj por vi, ke vi povas esplori per ĉi lernilo aŭ en la seminario dosierujo. Sed ĉi tie mi volas komenci pli de nulo. Ni krei simplan fari aplikon. Tiu estas speco de la bazo de kio la al faru apliko mi montris vin pli frue estas. En ĉi lernilon, vi Mi vidas ke estas iu komando Meteoro krei al krei novajn Meteoro projekto. Vi devas nomi ĉi celo kuri Meteoro projektoj ĉar kuros la komandojn krei la Meteoro fajlilo necesa por via projekto. Se vi iras en la stacion, ni povas iru en la dosierujon nomita paŝo unu. Kaj paŝo unu respondos per la unua paŝo en la lernilo. Notice estas dosierujoj, paŝo unu, ŝtupo du, tuta vojo ĝis kvin. Kaj cxiu estas responda al paŝo en ĉi lernilon. Mi iras malfermi ĝin en mia tekstoredaktilo tie tial ni povas vidi iom de kion estis kreita. Ni rimarkas ke Estas kvar ĉefaj partoj. Tie estas Meteoro dosierujo, .meteor. Kaj ke vi kutime ne bezonas tuŝi. Meteoro prizorgas tiu dosierujo, kaj ĝi simple certigas, ke via projekto funkcios korekte. Ni ankaŭ havas tri dosierojn, HTML-dosiero, JavaScript dosiero, kaj CSS dosiero. Ni unue komencu per la HTML-dosiero. Je unua rigardo, tio aspektas kiel normala HTML dokumento. Sed rimarki, ke ne Estas kelkaj diferencoj. Unu, tio ne reale kompleta HTML dokumento. Ni mankas la HTML etikedojn. Tio estas normala. En Meteoro, vi ne atendas krei tiujn HTML etikedoj. Tio estas farita por vi. Vi volas begin-- se vi volas krei retejon, vi nur bezonas komenci kun la kapo etikedo, difini tiun, kaj tiam Difini la korpo etikedo. Sed se vi rimarkos en ĉi HTML-dosiero, ni havas novan etikedon. Ni havas la ŝablonon etikedo. Ĉi tio ne estas normala HTML. Tiu estas speciala versio de HTML ke Meteoro faras disponebla al vi. Ĝi estas nomita spaco riglilojn. Vi povas difini ŝablonojn kiel malmulte moduloj, ia kiel helpanto funkcioj, en via C aŭ kodo JavaScript. Ĉi ŝablono farus havi nomon nomitan taskon. Kaj vi povas vidi ĉi tie sur linio 13 ke vi povas nomi tiujn ŝablonojn. Kaj kio Meteoro faros estas nur plenigi tiujn taskojn por vi. Alia afero vi eble rimarkos estas iom malsama estas tiu ĉiu funkcio. Ĉiu prenos la variablo taskoj kaj tipon de iri tra ĝi en tiu foreach buklo ni vidis en ekzemple sep. Tiu ĉiu povas preni vortaron aŭ lerta, objekto aŭ listo, kaj ĝi devos nur iri tra ĉiuj de la valoroj kiel foreach buklo deziris. Do se ni havas aron da taskoj, tiu vokos la ŝablono en ĉiu tasko. Ni kuras la Meteor projekto nur por vidi ke ĉi tio okazas. Mi kuros la Meteor projekto kun nur Meteoro aŭ Meteoro kuri. Kaj nun Meteoro nur bezonos rapide prepari la projekton, komenci la datumbazo kiel necesa, kaj afisxu la app loke. Ni povas iri al nia navegador retejo nun. Kaj ni vidos ke ni havas tre simplan programon. Do kion ni vidis montris supren estis fakte la ŝtupo unu, la paŝo unu dosiero. Ni movi antaŭen al paŝo du nur ĉar Mi pensas ke ĝi servas la saman celon. Mi nur tuj ŝanĝos al la paŝo du dosierujo kaj kuri Meteoro denove do ni povas vidi la ŝablono ni nur laboris kun. Jes, estas demando? Publiko: Se ni ricevas permeson neis, estas that-- kio estas tio nomita por tio? Roger ZURAWICKI: Se ke vi uzas Meteoro run, kaj vi rajtas malkonfesis, iuj de viaj dosieroj ne havu la rajton permeson aro. Do vi devas kontroli kie la dosierumaj permesoj estas for. Ili povis esti ekstere en via Meteoro projekto, aŭ ili povus esti ekstere en la Meteoro fajlilo sin. Publiko: Se mi elŝutis ĝin ĝuste nun de via GitHub, tiam kion mi faru [Inaudible]? Roger ZURAWICKI: Se vi deziras certigi vi povas konsenti li, tie estas komando vi povas kuri. Lasu min rapide skribi ĝin do aliaj homoj povas vidi gxin. Mi tuj malfermi novan langeton tie kaj venos en mia seminario dosierujo. Chmod estas la komando ŝanĝi permesojn, kaj vi povas diri r por fari ĝin rikure por ĉiu dosiero. Kaj permesoj, vi povas provi 0755 certigi vi havas plenan aliron, kaj ĉiuj aliaj povas legi. Kaj se vi nur kuri Tiu komando, ĝi faros certa ke la dosierumaj permesoj estas en kontroli la tuta dosierujo. Running ls-l povas montri al vi la permesojn en pli detalo. Ĉi aspektas OK. Kio estas pli grava estas ke vi havas ĉiujn tri rwx por ĉiuj dosieroj en la seminario dosierujo. Ĉu tio solvos la problemon? Publikon: ĝi diras mankas operante [inaudible]. [Inaudible] Roger ZURAWICKI: Vi devi fari certe vin havi dot fine de via komando. Publiko: [inaudible]. Roger ZURAWICKI: Bone. Ni rapide reiri al la loka gastiganto, la app ni havas. Kaj vi vidos, ke ni havas malmultaj taskoj tie, kiel atendis. Ni havas faskon de CSS, kiu Vi ne bezonas zorgi pri. La Meteor lernilo nur donas al vi fari viajn fari lerta aspekti iom pli agrabla ol la ebenaĵo HTML. Kaj ni havas la JavaScript-dosiero, kiu Mi iros en pli detalo iom poste, sed nur provizas tiujn taskojn. Jen tasko unu. Jen tasko du. Jen tasko tri. Do tiu estas la datumoj Meteoro iĝas. Unu el la malvarmeta aferojn pri Meteor estas ke ŝanĝoj povas okazi aŭtomate. Se mi volis ŝanĝi la nomo de la unua tasko, do ĝi dirus ĉi ne estas taskon, kaj mi savos ŝin, tiam, kiam mi iros al la retejo retumilo, vi povas refreŝigi ĝin, kaj ĝi aŭtomate Diras tiu ne estas tasko unu. Vi povas fari la saman aferon en iu ajn el ĉi tiuj dosieroj. Ŝanĝi ion, anstataŭ fari lerta, mi havas ĝin mia fari lerta. Kaj unu aferon vi ĵus rimarkis, ke mi eĉ ne devas refreŝigi. La ideo de refresxigxo bonfaras de solvitaj por vi kun Meteor. Ĉiufoje kiam ĝi detektas la dosiero ŝanĝoj, ĝi ŝarĝos la ŝanĝojn por vi. Tiu funkcias sur ĉiuj dosieroj, ĉu estas HTML, CSS, aŭ JavaScript. Montri vin kion ĉi tiu app aspektus kiel sen CSS, mi povas forigi ĉion. Kaj kiam ĝi estos reloaded, vi nun havas oni ne tiel agrabla-aspektan fari lerta. Ni metis tiun enhavon reen. Ankaux sufiĉe, ĝi refresca, kaj niaj CSS estas reen. Granda. Ni nun povas movi sur kun la lernilo. Tuj parolos ŝtupo du, ŝablonoj. Jen kion ni ĵus vidis kun la malsamaj taskoj. Meteoro klarigos al vi, kion ŝablonoj kaj kiel tiu logiko funkcias. Sed ni nur rigardas la kodon por vidu se ni povas fari senco el ĝi. En tre simplaj aplikoj, kiel kion ni havas en la simplaj fari, ŝtupo unu, ŝtupo du, paŝo tri, paŝo kvar, paŝo kvin, ni ne havas ajnan dosierujoj. Ni ne havas la servilo dosierujo mi menciis. Ni ne havas la klienton dosierujo kiu estis menciita. Do Meteoro kuros ĉiuj dosieroj. Ĝi kuros ĝi ambaŭ sur la kliento, ambaŭ sur la servilo. Kaj se vi volas partoj de via Ĝavoskripto kodo por kuri nur sur la kliento, Ili bezonas certigi ke vi havas oni se deklaro, ia kiel kion ni havas en niaj Javascript dosieron tie. Do Meteoro, nur se ĝi estas la kliento, tiam mi volas difini ŝablonon helpanto vokis taskoj. Kio ĉi kodo vere faras estas ĝi diras ke estas unu objekto nomata ŝablono ke Meteoro havigas. Kaj ni tuj aldonu helpanton. Helpantoj estas tiuj taskoj, tion kiel la taskoj. Vi vidos ke se ni reiros al la HTML-dosiero, ni nomas ĉiun sur taskoj. Taskoj estas ne difinita en la HTML. Ĝi estas difinita en la Javascript. Kaj Meteoro bezonas scii kion taskoj estas kiam ni iras en la Ĝavoskripto tie. Taskoj estas ĉi helpanton. Parakleto, vi povas pensi pri ĝi kiel ŝablono variablo. Kaj kion faras taskojn fari? Nu, denove la listo de valoroj. Ĉar ĝi estas lerta, ni povas nomi ĉiun en ĝi. Do tio estas kial ni nomas ĉiun sur taskoj. Kaj nun ni havas taskon. Kion tasko fari? Nu, ĝi havas ĉi tiun sagon tie post la frizita krampoj. Tio signifas tasko estas ŝablono. Tio ne estas helpantino, kiel kion ni ĵus vidis. Estas ŝablono ni difinis. Kaj kie ni difinis ĝin? Ni difinis sube dekstre tie. Ĉio ĉi ŝablono ne estas redonu listeron, kaj li nomas tekston. Nun, teksto ŝajnas esti helpanto, sed mi montros al vi ke tiu estas efektive ankoraŭ datuma membro de taskoj. Kiam vi nomas ĉiu, ĝi iras en la datumstrukturo iomete. Kiel la foreach buklo, ĝi nun simple aspektas je la unua elemento de nia objekto. Ni vidas, ke teksto difinitaj ĉi tie en nia objekto. Do Meteoro estas inteligentaj por scii ke ni parolas pri tiu teksto, ne helpanto nomita teksto. Ĝi simple ricevas la valoro de ĉi teksto ĉi tie kaj montras ĝin kiel HTML, kaj tiel estas kiel la datumoj iras el la JavaScript por la HTML. Pasante kvankam, en tiu ekzemplo ni malfacile kodita tiuj valoroj. Meteoro faras du vere bonegan manĝaĵon por ni. Krom la rekta refresh ke ni montris, ĝi sukcesas ankaŭ nia datumbazo. Se vi devis labori kun PHP, vi devis agordi phpMyAdmin. Vi devis certigi vian tabloj estis ĉiuj en ĉeko. Vi devis fari multan laboron por fari suferos vian datumoj estis formatita korekte, kaj PHP povis komuniki kun ĝi. Nun, Meteoro uzas novan paradigmon. Tio estas pli moderna formo en manipuli datumbazoj. Estas teknologio nomita MongoDB. Ĝuste kiel en JavaScript, ni vidis ke ĝi Ne gravis, kio tipoj la datumoj devis. Ĉio estis var. Ne estis charstar. Ne estis int. Ne estis struct. Estis ĝuste var ĉi, var tio. MongoDB laboras ia sammaniere. Vi ne devas difini vian tabloj. Vi ne devas diri tablo havas nomon, kiu havas int. Ĝi havas, mi ne scias, dolaro, kiu estas dekumaj. Estas nur tiuj Javascript celoj, ĉiuj tiuj vars, esence. Kaj tiu estas vere potenca maniero prototipo via app. Kaj tio estas kial Meteoro utiligas ĉi. Se ni iras al paŝo tri, ni trovu kiom ŝanĝiĝis. Se ni rigardas la todos HTML, ne multe. CSS ne ŝanĝis tute. Sed la malgranda ŝanĝo ni vidas en HTML Estas ni ŝanĝis kiel taskoj estas difinita. Taskoj estas nun funkcio. Tio signifas, ke ĉiu tempo ni volas ricevi taskojn, ni tuj kuri ĉi funkcio. Ne denove la funkcion kiel valoron. Meteoro estas inteligenta por fakte kuras la funkcio por vidi kion ni eliros. Kaj ĝi revenas ĉi afero nomas taskoj. Ni difinis taskojn sur linio unu, kaj ĝi estas Mongo kolekto. Mongo raportas al la datumaron Meteoro uzas, kaj tiu nova simple signifas ni faru nova kolekto, nomas ĝin taskoj. En MySQL, tiu estus ekvivalenta al serĉante la tablo nomita taskoj. Mongo havas kolektojn, ne tabloj. Do ĉi nur serĉas taskojn. Nun, ŝablono en nia helpantino en la ŝablono, ĉiuj ni devos fari por ricevi cxiujn taskoj estas tiu funkcio, serĉi kaj tiu malplena krampoj. Ĉi tio estas pli aparta por Mongo sintakso. Estas multe da dokumentado online por kiom Vi povas fari efikan kaj vere utila Mongo pridemandojn. Sed io tiamaniere estas bona Suficxas por ĝuste trovi ĉiujn datumojn. Nun, unu el la temoj vi povus vidi estas ke ni neniam reale aldoni datumojn. Do kio okazas kiam ni reale kuri paŝo tri? Ni rapide iru en paŝo tri kaj kuri Meteoro. Rimarku ke mi havis alian Meteoro projekto kuri ie ajn, tiel Meteoro ne ŝatas tion. Mi nur tuj rapide proksime la aliaj Meteoro kun Kontrolo C, iru en paŝo tri, kaj kuri Meteoro denove. Avizo ĝi estas startanta MongoDB ĉar MongoDB Estas parto de ĉiu Meteoro projekto. Do diras mia apliko havas eraroj. Tiu estas bela trajto Meteoro havas. Ĝi certigas via HTML estas bone validigita. Ni rapide rigardi kial ĉi tio eblis. Ŝajnas mi hazarde kopiis la malĝusta HTML kodo. Se mi savos ĝin nun, Meteor aŭtomate rekomencita la servilo, kaj nun la app kuras kiel atendis. Avizo ripari tion, vi simple povas ekzekuti la sama HTML dosiero de ŝtupo du, kopii ĝin en paŝo tri. Ni povas reiri al nia loka gastiganto. Kaj nun ni vidas ni havas niajn fari lerta. Granda, sed estas malplena. Ni ne vere havas ajnan taskoj en nia Mongo datumbazo. Do ni parolu pri malmultaj manieroj ni povas fari tion. Se ni superas nin al la fina stacio, ni povas fermi ĝin kaj kuras Meteoro Mongo. Se vi konas kun kiel Meteoro laboras, ĉi vere donas al vi aliron satege MongoDB por Meteor. Rimarku ke vi devos esti kurante Meteoro unua por ĉi labori. Do se mi kuros ĉi en nova langeto, mi povas reiri al la sama dosierujo. Kaj nun Meteoro funkcias nur fajna. Jen prompto. Lasu min fari ĝin iom granda por ke ni povu vidi. Ĉi aspektas iom malsama ol kion vi povus uzi por vi ne vere bezonas uzi Mongo. La tuta punkto de mi cxi tie estas por ke vi povu uzi javaskripton. Sed se vi estas scivola, la Mongo API ne uzi SQL, la Strukturita Query Language. Ĝi uzas sian propran lingvon, kiu similas tre Javascript. Tre rapide, oni povas trovi la tablon per db.tasks. Kaj ĝin dirante al mi rezultas se ni kuras trovi, speco de simila al kion ni havis kun Meteoro, ni povas ŝarĝi ĉiujn elementojn. La problemo estas, ni ne efektive havas neniun taskoj difinitaj. Do ĝi ne povas atingi ilin. Ni povas enmeti, kvankam. Do ni povas kuri insert kun komando insert. Kaj ni simple doni ĝin objekto, kaj ni simple certigi la formato estas kion ni atendas. Se ni rigardis ŝtupo du, ni vidis, ke ĉiu tasko estis celo kun teksto kiel la ŝlosilon kaj kio ajn via fari listero estis kiel variablo. Do ni povas fari ion tie. Ni povas havi ĝin enmeti tasko vokis mi devenas Mongo. Kaj ni premas Enter, kaj ĝi kuras. Ni povas kuri retrovis, kaj ni rigardas ke estas objekto tie. Mongo asignas ĝi IRU, kiun vi Ne vere necesas maltrankviliĝi. Kio gravas al vi estas la datumoj vi metis en, estas la datumoj vi eliros. Ni reiru al nia retejo, kaj he, nia tasko ŝarĝis. Kaj vi povas vidi ke ĉar Meteoro estas tre inteligenta kaj ĉiam refreŝigas por vi, mi ne devis tuŝi la paĝo. Ĝi aŭtomate ŝarĝitaj. Ni kuras iu kodo en Ĝavoskripto kvankam por fari tion. Kiel ni havi Nodo en la dorso fini ekzekuti el Ĝavoskripto, ni povas ankaŭ kuri JavaScript rekte en nia retumiloj. Vi povas fari tion per esprimilo nomata Inspekti Elemento. Se mi pravas klaku sur sekcio de la paĝo, ekzistas eblo nomata Inspekti Elemento. Se vi uzas unu retumilo kiel Safaro, vi Eble devas aktivigi vian desarrollador iloj antaŭ ol atingi tiun funkcion. Kion ni interesas estas la konzolo. Do ni nur iri al la konzolo ĉe la malsupro. Nun ni povas kuri ajnan javaskripton tie, kiel la Ĝavoskripto dosierojn mi montris en la js ekzemplo. Sed nun ni rigardu taskoj. Ni povas kuri nia komando. Kaj espereble mi povos fari gxi iom pli granda por ke ni povu ĉiuj vidu. Se ni kuras tasks.find kaj Vi vidi ke tiu estas la ĝusta sama kodo ke la JavaScript dosiero uzoj en paŝo tri, ĉi task.find. Ni povas kuri la saman, kaj nun ni ricevas iujn strangajn aferojn. Kiel ni reale preni la datumojn? Nu, ni devas kuri ĉi komando nomis aliformigi. Ĉi tio estas tre utila por depuración. Kion vi ricevas tie estas kursoron, kaj tiu estas agrabla maniero Meteoro havas optimizado kolektadon de datumoj. Ĉi kursoron havas ĉiujn karakterizaĵojn por rekta ĝisdatigo kaj refrescante la paĝo kiam iu ŝanĝis. Sed ĝi ne ricevos ni la datumojn. Ni povas akiri la datumojn vojo aliformigi. Kaj vi vidas ni havas objekton kaj gxuste kiel kion ni havis en Mongo, kun ID kaj la teksto ni metas en. Nu do kiel ni enŝovu artikolon en Meteor? Nu, ni nur devas taskoj. Kaj tiam ni povas kuri la sama enigaĵo komando, donante vortaron aŭ objekto kun la sama formato, teksto kaj tiam Mi venas de la konzolo. Rigardu supre ĉar kiam mi fari tion, ĝi montras supren en la retejo aŭtomate. Rimarku ke vi povas meti ion vi volas en ĉi tiuj ítems. Ĝi ne devas havas fiksan strukturon. Mi povus havi egalan al la numero tri kaj b egalas al falsa. Kaj ĉiuj verkoj. Mi povas eĉ elekti ne inkluzivi tekston ajn. Tiu estas ĝuste ne rekomendita kvankam ĉar tiam Meteoro ne scios kion montri. Sed en ĉiu kazo, ni ricevi IRU, kaj tio estas la ID de la objekto povas uzi. Kiel ni daŭrigos kun paŝo kvar kaj paŝo kvin, la lernilo montros vin manieroj vi povas krei UI elementoj uzante HTML vi scias krei malsamajn taskojn. Ni rigardu paŝo kvar vere rapide. Ni vidos ke ni aldonis sekcio pri eventoj. Ŝablonoj povas havi helpantoj, kiuj alvenas al ni datumojn. Sed ĝi povas ankaŭ nomita eventoj. Kaj tiu estas kie aĵoj fariĝas utila, ĉar okazaĵoj estas kio okazas kiam vi alklakas malsamaj aferoj en via retpaĝaro. Tie, nia kodo estas dirante nin aldoni tiun okazaĵon. Aldoni ĝin kiam vi prezentis io kun la klaso nova tasko. Kion vi havas tie estas CSS selector. Do ĉi nur serĉas HTML elemento kiu havas la klason nova tasko. Kaj serĉas la okazaĵo, kiel submetiĝi. Aliaj okazaĵoj inkludas klako, ŝvebado, duklako, simila al kion vi akiras en normalaj HTML. Kion vi donos ĝin ĉi tie nun estas funkcio. Kaj vi povas havi vian kodo en tiu funkcio. Tiu funkcio estas kio finas akirante nomita kiam vi vizitos nova tasko. Ni rigardu la HTML nur tiel ni kompreni kio ĉi tiu nova tasko estas. Ni aldonis formon tie kun klaso nova tasko. Kaj ĝi havas enigaĵoj kiuj prenas tekston. Kaj ĉi tie ni aldonos niajn novajn taskojn. Ni kuras paŝo kvar en la retpaĝaro por vidi kia gxi aspektas. Ni povas forlasi unua el de la MongoDB ni devis el nia antaŭa Ekzemple kun Kontrolo C. Kaj ni ŝanĝos ĝin en la paŝo kvar dosierujo. Ni kuros Meteoro denove komenci la servilo. Kaj bedaŭrinde, mi devis Meteoro kurante en alia fina stacio. Do mi simple tuj certiĝu ĉi fermitaj. Ni lasis tion kaj ŝanĝo al parto kvar, paŝo kvar. Akcepti. Nun niaj Meteoro kodo kurante. Kaj vi povas vidi ke ĝi ĝisdatigis, sen ni eĉ devi refrescar la paĝo. Kio ŝanĝiĝis tie estas nun ke ni ne havas ajnan taskoj, sed ni havas formon ĉi tie, ĉi tekstujo, aldoni nia nova taskoj. Kaj ni povas tajpi nian taskon tie ĉi. Mi venas de la HTML-paĝo. Kiam mi premas Enter, ĝi alvenis prezentita. Ni povas vidi kio sekvis kiel difinita de la kodo JavaScript. Kio ĉi tiu funkcio faris estis preni la tekston de la formo, kaj subite vokis tasks.insert, kiel ni faris en la konzolo. Ili ankaŭ elektis por aldoni createdAt dato. Jen kiel vi farus specifi la nuna tempo. Post tio, ĝi demetas la formo farante certa ke la valoro estas la malplena linio. Kaj tiam li nomas reveni perfidos certigi nenio alia okazas. Kiam vi revenos falsaj el formo okazaĵo, kiu por ekzekuto. Diru formo havas agadon, kiel submetiĝi al PHP paĝo. Se vi ne estis reveninta falsaj, oni kredus reveni vera. Ĝi finus farante tiun peton. Falsaj interkaptas ĝin kaj por tio pravas. Do kiu estis iom demo pri kiom Meteoro funkcias, kaj ni estis sekvante la lernilo por tempo. Kaj vi povas ne hezitu libera daŭre fari ĉi. Abundas rimedoj, kaj la lernilo estas vere ĝuste tre bona pri klarigante kio okazas. Mi volas montri al vi nun, en la malmultaj minutoj ni forlasis, Kio estas iuj el la malvarmaj karakterizaĵoj de Meteoro, kaj kio estas kelkaj el la pli utilaj pakoj. Unu el la grandaj aferoj pri Meteor estas ke vi havas pakon sistemo. Vi povas facile korpigi kodo ke multaj miloj da desarrolladores skribis tutmonda En viajn Meteoro projekto. Unu ekzemplo de ĉi tio estas kion vi eble fari en ŝtupo naŭ de la lernilo, kie vi provas aldoni kontoj al viaj Meteoro projekto. Se ni havas CS50 PHP projekto, ni havus konfidi en la kadro aŭ nian propran kodon por fari certe ni sekure manipuli pasvortoj kaj salutnomoj kaj stokante la datumbazo kaj ĉiuj de tiu. Rezultas Meteoro havas iujn pakoj fari tion por vi, kaj fari ĝin tre facile. Kion ni povas fari estas aldoni iujn pakaĵojn. Do ni faru ke dekstra nun en nia konzolo. Mi tuj forlasis la projekton kaj nun iru en simpla-todos. Nun, simpla-todos estas la projekto kiun vi havos post esti farinta kun ŝtupo 11 aŭ ŝtupo 12, fine de tiu lernilo. Kaj ni rapide rigardu ŝin vidi kio estas la malsamaj trajtoj ni havas. Ni simple certigi ĝi estas kurante. Kelkfoje ĝi prenas tempon por refreŝigi, sed jen ĝi estas. Ni havas nian eblon kaŝi kompleta taskoj, kaj ni povas ensaluti. Kaj tio estis farita kun la Meteoro pako. Estas bonege. Ni nun salutnomo kaj pasvorton Ensaluti. Sed kion se ni volis aldoni alispeca ensaluto mekanismo? Diru Mi volis ensaluti en mia Meteoro konton. Mi tuj kuros meteoro aldoni, kaj ĉi estas la sintakson por aldoni pakaĵojn. Mi povas diri kontoj, kaj accounts.meteor. Iĝos nun trovi la pakon kaj ŝargi ĝin. Vi povas vidi kion mi ne trovis la dekstra pako nomo. Do kiel vi sciiĝis pri pakojn? Nu tie estas granda retejo, farita havebla de la Meteoro homoj, nomata atmospherejs.com. Atmospherejs, unuvorte dot com, estas granda deponejo por trovanta ĉiujn de la Meteoro pakaĵoj en la deponejo. Mi povas serĉi kontojn, kaj tiam ĝi montros min ĉiujn rilatajn stuff, ĉiuj pakoj kun la konto nomon. Dum kiu ŝarĝo, ni povas provi aldonante iuj aliaj pakoj. Eble la Meteor pako ne funkcias ĝuste nun, sed mi povas aldoni Facebook. Mi povas aldoni la konton kaj tiam kuri la Meteor projekto denove. Fojo ĉi startas, vidu kio ŝanĝiĝis en la paĝo. Vi povas see-- mi multobligita devas refreŝigi ĝin ĉi tie. Mi havas butonon por konfiguri Facebook ensaluto. Kaj ĉi tie, mi havus cxian la instrukcioj Meteoro pretigis por vi dum ekfunkciigi Facebook app. Kaj vi povas uzi tiun informo aldoni vian IDs. Fojo kiu estas farita, vi devos Facebook ensaluto laborante en via app. Mi nur tuj akiri app IRU kaj sekretan, nur por montri al vi kiel tio povus funkcii. Vi bezonos Facebook konto uzi Facebook desarrollador ebloj. Lasu min rapide trovi la Meteoro ŝlosiloj kiuj estas necesaj. Mi havas alian Meteoro projekto ke mi tuj uzos, kaj mi simple tuj prenos la klavojn el tiu dosiero. Kaj unufoje mi trovis ĝin, mi nur povos kopii tiujn ŝlosilojn en mia Facebook. Do jen estas ŝlosila. Kaj jen estas sekretaj. Vi devus ne esti dividi ĉi tion kun homoj. Kaj tiam vi donos gxin via app sekreto. Kaj tiu estas tiel Facebook scias estas vi. Kaj vi savos la agordo. Mi kredas en la procezo mi ĉesis mian Meteoro app. Do mi nur volas fari certe ĝi estas ankoraŭ tie. Bone, ni certigu nian Meteoro servilo kuras tiel la retpaĝo kuras. Avizo se ni haltas la Meteoro servilo, la paĝo estas ankoraŭ tie. Ĝi simple ne ĝisdatigi anymore. La Meteor servilo estas necesa por certigi la paĝo estas en vivas. OK, mi prezentis ĝin, kaj nun Mi povas komenci kunsidon kun Facebook. Nun estas nur demando de havante Facebook popo supren kaj metante en via konto informoj kaj lignoproduktado en. Unufoje vi fari tion, Facebook, multobligita Nag vi por iu pli sekureco. Do ni simple ĉesos tie. La punkto estas ke kiam vi estas farita kun tio, vi devos Facebook ensaluto. Meteoro havas faskon da aliaj pakoj tiel. Vi povas ensaluti per Google+. Vi povas ensaluti per GitHub. Vi povas ensaluti per Twitter. Aŭ se vi serĉi, vi trovos abundajn aliaj aĵoj kiel Meetup, LinkedIn, kaj Meteor Developer. Do Meteoro Developer estis la pako mi serĉis. meteoro aldonu kontojn-meteoro-programisto. Intertempe, mi ankaŭ volas rekomendi iuj aliaj ujoj por viaj projektoj. Tio povus esti utila al inkluzivas la jQuery pako. Ĉi tio permesas al vi uzi jQuery en viaj klientoj. Vi povus simple fari ĝin kun unu linio, kaj Meteoro faros certe vin estas ĝisdata sur jQuery. Mi ankaŭ rekomendas Houston: admin. Tiu estas speco de kiel phpMyAdmin speco de ilo por via MongoDB. Tio permesas al vi redakti viajn datumojn tute facile sen devi iri al la Mongo konko, kiel mi faris pli frue en la seminario. Do nun ke tiu kuras, ni kuras Meteoro denove kaj vidi kion ni povos fari. Vi rimarkos ke aldonante iuj pakoj havu ilin prezentos iuj avertoj. Vi ne bezonas zorgi pri kiuj kun Houston. Do ni nun povas havi la eblon konfiguri Meteoro admin. Kaj ili fordonas la direktoj se vi volas agordi ke supren. Ni povas ankaŭ iros sur / admin. Tiu estas alportita al vi per la Houston pako. Kaj jen estas Meteoro interfacon interfaco. Vi nur krei Admin konto, kiel tia. Kaj se vi refreŝigi la paĝon, vi povus havas iujn kolektojn montrante supren. Ĝi estas tre utila ilo, kaj mi forte rekomendas ĝin. Vi povas vidi ke ĉar Houston estis donante iuj eraroj, ni ne havas ajnan kolektoj montrante supren nun. La vojo vi uzus Houston estas certigi ĉi funkcio ricevas nomita en via simpla-todos. Do Houston ne scii kion miaj taskoj estas. Ni starigis Mongo kolekto nomita taskoj. Ni iru en simpla-todos kaj justa certigi ke en la Javascript, ni aldonis taskojn por niaj kolektoj. Ni nun savita, kaj ĝin konstruado la apliko, refrescante. Kaj ne nur vi. Nun ni havas iujn taskojn. Kaj ni povas aldoni kelkajn novajn taskojn. Sed se ni volas aldoni taskojn, Ni faru tion kun la app mem. Nun ni povas aldoni iujn datumojn. Saluton, temas pri tasko. Ŝajnas speco de stranga ke ni ne vidante neniun taskoj. Ni eble volas kontroli se ni akiris ajnan eraroj tie, aŭ eble aliloke. Se ni iras al admin, kiu ŝajnas stranga. Se vi tiri la deponejo post tiu seminario, Mi certiĝu ke simpla-todos laboras kun Houston. Bedaŭrinde, ĝi ne ŝajnas esti laborante en ĉi tiu sama momento. Ĉu estas aliaj demandoj? Houston kutime estas ilon kiu funkcias tre bone. Houston specife estas iom buggier ol la aliaj, sed mi faras rekomendinda kiam laboras. Yeah. Publiko: Kion vi povas fari kun la Facebook pako unufoje uzanto estas ensalutinta en iliaj Facebook? Roger ZURAWICKI: fojo uzanto ensalutita, vi povas fari alvokoj al la Facebook API. Multa kiu kuŝas pli en kiom Facebook malfermas ilian API. Meteoro, certigu vin havas la rilaton. Sed ĉiu post tio estas afero de lerni kiel uzi la Facebook API. Publiko: [inaudible]. Roger ZURAWICKI: Bone. Grandan dankon por ĉi CS50 seminario en Meteor. Se vi havas demandojn, Vi povas retmesaĝi min ĉe mia retpoŝtadreso listigitaj sube la seminario. Kaj mi ĝojos respondos viajn demandojn. Mi ankaŭ estos ĉe la CS50 Hackathon devus vi bezonas helpon kun via Meteoro projektoj. Dankon pro rigardante.