[Muusika mängib] ROGER Żurawicki: Tere, minu nimi on Roger Żurawicki, ja ma katmine CS50 Meteor seminar. Meteor on uus raamistik pühendatud uutmoodi web, ei PHP tegemise taotlused edasi-tagasi liiki web nägime PHPP komplekt, kuid dünaamilisem JavaScript osad veebis. Asjad Meteor saab teha sisaldab Live uuendamine ja kohe suhtlemisel kasutajate vahel sama veebilehel. Sel seminaril on meil kood võõrustas minu github. Võite minna selle URL ja alla laadida. Kui tead, kuidas kasutada Git, saab kloonida hoidlasse. Kui sa ei tea, kuidas seda kasutada GIT või ei ole kasutanud github, see on täiesti korras. Ma näitan sulle tõesti kiiresti kuidas me saame minna github, ja seal on võimalus lae alla zip seal. Kui olete alla laadinud selle kataloogi, siis võib alustada mängides meie koodi. Rohkem infot Meteor võib leida meteor.com. In Seminar kausta, ma tegelikult mõned Meteor projektide saame kasutada. Üks kaustad oleme meie Seminari projekt on kõike app. Nii et kui ma lähen sinna ma, on Meteor paigaldatud. Nii, et kasutada seda, ma lihtsalt vaja sisestada Meteor ja Meteor paigaldada. Nagu näete, on meil veenduda, et me paigaldatud Meteor. Nii et ma lihtsalt lähen käivitada veel üks kord veenduda, et Meteor on õigesti paigaldatud. Kuigi mul Meteor paigaldus, ma näitan sulle mõned live demod Meteor saidid läheb elama just nüüd internetis. Mul on demo meie app. Võite kasutada seda järgmisel URL. See on teha app, et me on meie seminar kataloogi. URL on see, rozu-rabbit.meteor.com. Sa näed, et Meteor tegelikult võõrustada oma Meteor projektide tasuta. Ja lõpus seminar, Teil on võimalik seda teha ka. See on teha nimekirja app. Ja saate logida luua raamatupidamise ja lisada ülesandeid. Võite luua konto nagu nii. Ja nüüd, kui sul on konto, saate lisada ülesandeid. Näiteks üks ülesandeid I võib vaja minna kiirenemist minu pesu. Ja kui sa oled selle site online, saate tegelikult näha selle ülesande arvuti reaalajas. Ma näitan sulle kiire demo Selle avades Rozu-küülik teises tab sama URL. Ja me näeme, et samu andmeid kerkib. Me võime ka selle käivitada teist brauserit. Ütle ma saan seda Safari. Nii me pole veel sisenenud. Nii et meil on sama Meteor app, ja kui ta koormused, me näeme samu andmeid me tegime esimest. Nagu näete, ma pole veel sisenenud siin. Ja kui publik kontrolli andmed, see värskendab kõik brauserid samaaegselt. See on üks tõesti lahedad funktsioonid umbes Meteor. Praktiliselt ühtegi tööd, siis on live ajakohastamine app et muutused kogu Oma seadmete korraga. Kui ma kontrollin kasti märgi minu teha nimekirja, meil on, minu teisi Chrome brauser, objekti kontrollinud välja. Ja see juhtub kohe. Hea küll. Seega tundub, Meteor paigaldamine on nüüd valmis. Nüüd lähme tagasi kõike app ja kasutada seda kohapeal. Kui teil on Meteor projekti, saate lihtsalt käivitada käsuga Meteor. Kui sa seda teed, Meteor teeme mõningaid ettevalmistusi veenduda kõik Sinu kood on kontrolli all. Ja siis ütlen teile, et Projekt on serveerimiseks valmis. Võib-olla peate lubama oma tulemüür, kui arvuti blokeerib teid. Mis Meteor räägib mulle praegu on see, et sellel veebilehel kohaliku minu arvuti, ma näen mida see Meteor projekti. Pange tähele, et just nüüd, minu app on ei pääse internetti. Me katta kuidas tuua oma Meteor app otsesaidil natuke hiljem. Nii et ma lähen lihtsalt kopeerida seda URL nüüd ja mine Google Chrome. Ja see on, mida teha list näitel. Näete neid rakendada veel mõned omadused siin. Meil on erinevad sakid, me on sama konto funktsioone, ja me saame lisada uusi nimekirju. Nüüd, üks tegelikult lahe funktsioon umbes Meteor on see, et mitte ainult ei saa seda töötada oma veebibrauseris kuid võite ka luua native iPhone ja Android apps kaudu tööriista nimega PhoneGap. Nii mõned projektid tulevad eelhäälestatud töötab iOS, nagu seda kõike app. Nii et kõik mida ma pean tegema, et kasutada seda iOS on kirjutad Meteor, joosta ja siis iOS. Ja kui ma seda teen, Meteor valmistab pakendi uuesti. Ja siis, kui see on valmis, siis see laadige iOS simulaator minu käsk. Märkus Korraga saab töötada vaid iOS apps Kui teil on Mac arvuti. Võite käivitada oma apps Android kõigil platvormidel. Nüüd näed, et minu iPhone simulaator tulid minu ekraanil. Ja üks hetk, see saab koormus app. Kui me teeme seda lihtsalt natuke väiksem sobi ekraanile, näeme meil on iPhone app. Ja just nii me seda ei tee Segaduse, teeme Kindlasti oleme samal kodulehel, kohalikus masinas 3000. Nii siin on näiteks Euroopa Meteor app ma olen, kõike app, töötab nii telefoni ja veebibrauser. Ja kui ma saan muuta asju veebibrauseris, kohe läheb telefoni. Ja ma ei saa kustutada midagi telefoni, ja see muudab veebibrauseris. Nüüd, tavaliselt luua emakeelena telefoni app iOS või Android, mida pead teadma, kas Java või Eesmärk C. tehnoloogia Meteor kasutusalad võimaldada JavaScript kulgema Sinu app nimetatakse PhoneGap. Mis teie app sisuliselt on on veebibrauser. Ja Meteor töötleb keeruline osadega seotud tuua, et veebilehitseja Sinu iPhone või Android seadme. Te näete, et Kasutajaliides on sile, ja see näeb välja väga palju nagu native app. Pange tähele, et kui ma lähen koju ekraan nüüd, ka mina saan ikoonil. See ei ole veebilehel nagu soovite leida Safari. See on oma app. Võite installida ja kustutada, kui soovite. Me võime lühidalt näidata, mida koodi sedalaadi kõike app välja näeb. Kui sa vaatad kõike kausta näed seal on palju kaustu. Kuid aja jooksul Seminari võtame mõista, mida iga kausta kasutatakse. Lähme pesasse nii me näen faile natuke parem. Ma lähen vajutage kontroll C lõpetada server, ja nüüd olen tagasi kõike app. Mul on erinevad kaustad, nagu kliendi kausta server kausta. Ja need kaustad lihtsalt tähendab, et kõik kliendi kausta saab täide oma veebibrauseris. Kõik on server kausta saab täide server. Mida ma tahan juhtida välja on see, mida me pidime kui meil oli meie telefon töötab ja Meie veebibrauser, need olid kliendid. Aga mis töötab terminal, mis on server. Meil on ka teisi kaustu, nagu lib, mis on raamatukogu koodi nagu sinu abimees funktsioone, mida saab kasutada nii klient ja server. Ja siis on avalik kausta ja ressursse kausta vaja osata piltide ja muude CSS koormatud. Kui olete Meteor paigaldatud, siis me jätkata juhendaja Meteor. Võite minna selle URL, meteor.com/install, saada käsurida, et ma näitas, et installib Meteor. Me läheme läbi esimese paar sammu, et saada parem tunnete, kuidas paigaldada Meteor. Aga kõigepealt, ma arvan, et see on oluline, et vaatame natuke JavaScript. Et näidata teile mõned näited sellest, kuidas Meie C teadmisi saab tõlkida et JavaScript, ma olen loodud mõned näited. Nad on js kataloogi. Nii et kui seminaridel kausta, mida vaata, seal on kaust nimega js. Ja siin on meil mõned näited. Olgem avada esimene Näiteks ja vaata väga kiiresti. Mida me näeme, on oma kindlad hello world käsk. Sa teate C, et teil on üsna paar rida. Ja nagu CS50 õpilased teavad, vajame põhifunktsiooni ja meil on kaasata standard I / O teek et helistada printf. Vaatame, kuidas JavaScript võrdleb. Ma lähen avama ex1.js. Kommenteeris välja, mida C-kood näeks, ja rida allpool on kõik sa pead joosta sõlme. Sa ei pea põhifunktsioon, siis ei pea sisaldama kõiki faile, ja sa ei pea tagastama. Sa lihtsalt helistada console.log. See on samaväärne oma printf. Ja see võtab sama argumendid printf oleks. Ja selleks, et kasutada seda, selle asemel teha ex1, sa oleks lihtsalt helistada Node ex1.js. Sa kirjutad Node ja seejärel faili ja see läheb jooksma. See ei saa koostada. JavaScript on tõlgendatud keeles. Seega ei pea olema koostatud enne kui see kestab. Kui ma tahtsin joosta ex1.c, Mul on teha seda esimest, ja siis ma saan käivitada käivitatava saada sama tulemuse. Lähme kiiresti katta osa muud JavaScript mõisted. Vaatame näiteks kaks. In ex2.js, in ex2.c, saame näha, et meil on mingi kood. Lubage mul minna tagasi parem tekstiredaktor mis näitab nende uued liinid natuke parem. Hea küll. Siin on meil näiteks 2.c Siin on meil erinevad et me väljatrükk. Ja nagu me teame, printf võtab erinevate protsenti argumendid juurdepääsu erinevate tükki andmeid. Kui me tahame, et printida string, mida me nimetame% s. Kui me tahame helistada ujuva Punkti number, me kutsusime% f. Ning pole lihtne helistada Boolean tema õige või vale väärtus. Aga kui te kasutate% d, saad 0 või 1 vale ja õige. JavaScript on natuke kenamaks meile. In JavaScript, vaatame paari erinevused oleme selles failis. Esiteks, te teate, et C peame initsialiseerida iga muutuja tüüp. S on char star. See on string, ja see saa olla mingit muud tüüpi. N on sularahaga. B on Bool. Aga JavaScript, on dünaamiline tüübid. See tähendab, et sa ei vaja öelda JavaScript milliseid teie muutujad on. Sa lihtsalt öelda var muutuja nimi muutuja, ja siis selle väärtust. Nii var saab midagi tõesti. See võib olla string. See võib olla ujukomaarvuna. See võib olla märk. See võib olla Boole'i. Ja konsooli logi töötab natuke teistmoodi. Kui soovite printida number, siis helista% d. Aga kõige väärtused võivad olla trükkida stringid just fine. Olgem käivitada seda Node et näha, mis juhtub. Ma võin helistada Node ex2.js, ja saame printf koos väärtuste CS50, N nagu ujukomaarvuna, ja siis B Boolean ümber string tõsi. Aga kui me teinud näiteks 2.c? Noh, meil on veel mõned rohkem annoyances koos printf. Pange tähele, et ujukoma number peab olema vormistatud korrektselt, ja et Boolean ei saa lihtsalt kuvatakse, kui õige või vale. Hea küll. Nüüd vaatame näiteks kolm. In näiteks kolm näitame kuidas soovid kasutada silmus. Tegelikult on see väga lihtne. Üks tore asju JavaScript on, et see on C põhineb. See tähendab, et palju teie kood näeb välja väga sarnane ja olen väga palju sama. In silmus, ainus asi et on tõesti muutunud siin on selle asemel int i, meil on var i. Me ei saa siiski määrata selle väärtustame null, kontrollige, et see on vähem kui viis, ja juurdekasvu see üks koos ++ operaatoriga. Me nimetame console.log on i, ja et prinditakse meile number igal real. Olgem kasutada seda tõesti kiiresti näha, mida ta väljastab. Me saame uus number igal real. Teine asi, mida ma tahan, et sa teate koos console.log on sa ei pea kirjutama längkriipsu n uuel real. Console.log prinditakse kõike oma rida. See on tore omadus et JavaScript annab meile. Nüüd avada näiteks neli. In näiteks neli, esimene C, kutsume mõned funktsioonid. Pange tähele, et meil on kuulutada funktsioone enne, kui me kasutame neid peamine. Kui meil oleks peamine esimene ja Seejärel lisada ja siis kõrge, teha, clang või GCC oleks anna meile error ütleb et ta ei tea, mida kõrge on. See ei tea, mis add on. Nii C, pead olema valiv Selleks, kus saate ise funktsioone. Vaatame, kuidas saab Selleks JavaScript. Meil on erinevaid faile, sest seal on mitu erinevat võimalust seda teha. Üks võimalus on päris palju otsetõlge. Kuna funktsioonid C tagastustüüpi ja JavaScript ei tea või hooldust millist tüüpi naasete, te ei kirjuta tüübist. Selle asemel, sa lihtsalt vaja kirjutada funktsiooni, ja kõik on päris sama palju kui enne. Kui teil on varieeruv, nagu lisada, me lihtsalt vaja kirjutada x ja y. Meil ei ole vaja öelda, x on int. Meil ei ole vaja öelda, y on int. Me tagasi sama süntaksit. Kõrge, me kuulutame seda toimida asemel tühine. Pange tähele, et kas see on tühine või mitte tühine, see on ikka kõik sama funktsiooni. Ja me lihtsalt ei pane midagi sulgudes ja tundub väga sarnane C koodi. Ja allpool, võib seda nimetada allpool. Kui me vaatame näiteks 4b, märkame et ma olen muutunud mõned asjad. Ainus asi, mida ma olen muutunud tõesti, kuigi on korras. Meil on sama funktsioone, kuid nüüd on nad kuulutati välja pärast nad kasutada console.log ja kõrge liinidel 18, 19. Kui tegime seda C, teha oleks visata viga. Siin see töötab just fine. Ja ma näitan sulle seda, mida kutsudes sõlme 4b näiteks. Teine viis, kuidas saame helistada funktsioonid on säästes toimib muutujaid. Nagu ma ütlesin, muutuva võib olla mistahes tüüpi. Üks tüüpi muutuja võib olla on funktsioon. Nii et kui te vaatate näiteks 4c, mida ma olen muutunud siin on var asemel lisada funktsiooni add. Ja nüüd lisada võrdub funktsiooni. See funktsioon siin on anonüümne. Tal ei ole nime, nii et see on lihtsalt funktsioon ja seejärel sulgudesse. Süntaks pärast seda ei muutu, kuid sa ei pea meeles pidama, et teil on muutuja, mis sa oled ladustamiseks funktsiooni sisse Lisa ja muutuja, mis sa ladustamiseks kõrged. Kuna lisada ja kõrge on nüüd muutujad ja mitte funktsioone, midagi muutub. See on üldine viga, mida ma näen Paljud inimesed on JavaScripts, ja midagi meeles pidada. Kui ma kasutan seda, vaatame, mis juhtub. Ma saan veateate. See ütleb undefined selles punktis. Nii ütleb ta ei tea, mida lisada on. Sest nüüd lisada ei funktsiooni, lisage on varieeruv. Ja sa ei ole tegelikult antud lisada väärtust veel, kui sa seda kasutanud. See toob meid näiteks 4d, kus, kui mida soovite kasutada muutujaid funktsioone, sa lihtsalt vaja veendumaks, et nad saada raha enne, kui nad on harjunud. Liigume edasi näiteks viis siis. Siin me räägime struktuurideks in C. C, struktuurideks on see fikseeritud struktuuri neile sest sa oled deklareeri Enne seda, kasutada ja sa ütled Mul on üliõpilane, ja iga õpilane on täpselt üks nimi, üks aasta, üks sugu. Ta peab neid kõiki. See ei saa olla mingit muud väärtused, ja nad peavad olema teatud liiki. Siis saame initsialiseerida struct selles kena süntaks sest ta teab, et. Nii ta teab, et Roger on nimi. Ta teab, et 2016 on aastal ja M on soolise sest me rääkisime ta seda nimekiri on struct üliõpilane. Ja siis saate printida see, tutvumise s.name. Vaatame, kuidas me oleks teisendada et JavaScript. Pange tähele, et s on nüüd muutuv, ja pole mingit tüüpi. See on lihtsalt var uuesti. Sest see ei ole oluline, kui tüüp on see muutuja pointer, see on struct või midagi muud. Meil on veidi teistsugune süntaks. See süntaks on objektsüntaks. Te olete näinud seda JSON. JSON tegelikult tähendab JavaScript Object Märge. See, kuidas sa defineerid objektid JavaScript. Meil on võti, mis on väärtus, nagu nimi. Ja me anname selle väärtused Teisel pool jämesooles. Ja üks asi, mida meeles pidada on teil ei pea olema nimi ja aasta ja sugu objekti. Objekti ei saa olla mingit väärtust. See võib olla nii palju kui soovite. Me võime kasutada neid objektide lihtsalt Samamoodi me kasutame struktuure, s.name. Me saame kasutada seda tõesti kiiresti tehes sõlme näiteks 5.c. Me ei saa reaalselt sõita C faili sõlme. See ei tea, mida C on. See teab JavaScript. Kui võtame ex5.js, saame väärtus, mis me ootasime. Liigume edasi näiteks kuus. Siin ma tahan rääkida natuke natuke lähemalt JavaScript massiivid sest nad on veidi teistsugune kui see, mida sa oled kasutatakse C. massiivid on notated, mitte sulgudes nagu C, lokkis traksid, kuid sulgudes. Sul võib olla tühi massiiv, nagu arr kooskõlas neli. Sul võib olla massiivid Mitme väärtusi. Ja sa neile ligi pääseda samamoodi C. Kuni liinil seitse, kõik Tundub üsna lihtne. Üks väike erinevus on siin rida 10. Kuidas sa saad pikkus massiiv on lihtsalt helistades LENGTH. Massiivi võib tegelikult olla kohelda nagu objekti, ja selle objekti pikkus on vara et helistate saada pikkuses. Pange tähele, et see on erinev C, sest C teil pead teadma pikkus Sinu eesmärk enne tähtaega. Nii üht kena asi massiivid on see, et sul võib olla erinevaid. Kui teil on massiivi C, siis on massiive eriline väärtus, kas struct pointer või ujub või [kuuldamatu]. Siin võib olla erinevaid väärtusi. Ma esimest korda oli ujukomaarvuna, Seejärel Loogiline, siis teine ​​täisarv. Ja tõepoolest, nad võivad muutuda tüüpi liiga. Vaata line 16. Array kahe muutub alates on number, täisarv, et string. Veel üks tore asi massiivid on siin real 19, neil on lõpmatu suurusega. Sa võid öelda, et ma tahan sajandikuga element olema string legit. Ja see ei tundu loogiline, sest massiivi ainult on ruumi kolm elementi, nii lõpuks peaks olema kaks. Aga kui sa seda teed, lähme näha, mida valikut kolme muutub. Meil läheks see kiiresti lümfisõlm näiteks six.js. Me saame seda tõesti pikk massiivi ja mis juhtub on meil paar esimest elemendid ja siis hunnik toorikud kuni saame meie string. JavaScript täidab massiiv, sest see on vajalik. Olgem lõpuks minna meie viimane näide. Siin on nimekiri Erinevate õpilastele. Ma tahan rääkida natuke natuke mõne kena aspektid of jaoks silmuseid JavaScript. In C, silmad on omamoodi piiratud. Nad on fikseeritud struktuur, kus te on muutuja, teil on seisund, ja siis sa teed midagi lõpus silmus. Ja muidugi see toimib JavaScript, nagu me nägime eelmises näiteid. Aga meil on ka kenamaks viise teha seda JavaScript. Seda nimetatakse foreach loop. Vabandame, lähme tagasi et näiteks seitsme siin. Me ei saa ka öelda, osa on nimekirja. Nii et anna mulle iga i või iga index selles nimekirjas. Siis saame õpilane lihtsalt helistades osa i. Nii et kõik on kood, millega i null ja hoolitsedes i on väiksem kui pikkus ja lisades ühe i iga kord, see on hoolitsedes sa pigem kenasti see foreach loop. Mitte ainult foreach silmad töötada nimekirjad või massiivid nad töötavad ka esemeid, mis on ka tore. Saad nimi iga vara lihtsalt võttes sõnastik või objekti, nagu üliõpilane, ja siis lihtsalt öeldes mulle iga võti. Oluline oleks neid omadused, nime või maja. Mis juhtub on see, et me välja printida esimene nime ja seejärel Maja iga õpilase. Ma saan käivitada seda Node tõesti kiiresti näidata. Me saame esimese C stiili loop, kus saame iga objekt, mida välja printida. Ja siis on meil JavaScript stiili, kus saab lihtsalt välja printida iga võti väärtustame ja individuaalselt. Hea küll. Nüüd, kui oleme kaetud Node.js, ma arvan oleme valmis, et alustada koos Meteor. Nagu ma ütlesin, Meteor tegid head tööd kirjutamise mõned valmis näited teile, et võite uurida läbi Sel juhendaja või seminar kausta. Aga siin ma tahan alustada veel nullist. Loome lihtne teha taotluse. See on omamoodi baasi, mida on teha taotlus Mina olen teile näidanud varem on. Sel juhendaja, siis näed, et seal on käsk Meteor luua kuni Uue Meteor projekti. Sa pead nimetame seda, et joosta Meteor projekte, sest see kestab käsud luua Meteor vajalikud failid oma projekti. Kui te lähete terminal, saame mine kausta nimega järgu. Ja esimene etapp on vastavad Esimene samm juhendaja. Teade on kaustad, samm üks samm kaks, kõik viis kuni viis. Ja iga üks on vastava et samm õpetamisel. Ma lähen seda avada minu tekstiredaktor siin nii näeme natuke, mis oli loodud. Näeme, et seal On neli peamist osad. Seal on Meteor kataloog, .meteor. Ja et sa tavaliselt ei pea puudutada. Meteor hoolitseb kausta ja see lihtsalt tagab, et teie Projekti toimida. Meil on ka kolm faili, HTML faili JavaScript fail ja CSS faili. Vaatame kõigepealt alustada HTML faili. Esmapilgul tundub see nagu tavaline HTML dokumendis. Aga teate, et On mõned erinevused. Üks, see ei ole tegelikult täielik HTML dokument. Me puudu HTML teeke. See on normaalne. In Meteor, sa ei oodata luua neid HTML tags. See on tehtud. Tahad begin-- kui te soovite luua veebilehe, sa lihtsalt vaja alustada peaga tag, määratleda, et seejärel määratleda body. Aga kui te märkate selles HTML faili, meil on uus silt. Meil on template tag. See ei ole normaalne HTML. See on eriversioon HTML et Meteor teeb teile kättesaadavaks. Seda nimetatakse ruumi baari. Saate määrata malli vähe moodulid, selline nagu abimees funktsioone, Teie C või JavaScripti koodi. See Mall on nimeks ülesanne. Ja näed siinsamas line 13, mille saate need mallid. Ja mida Meteor teha, on lihtsalt täita neid ülesandeid teile. Teine asi, võite märgata, on natuke erinev on see iga funktsiooni. Iga võtab muutuja ülesanded ja omamoodi läbi minema et foreach loop me nägin näiteks seitse. See kõik võib võtta sõnastik või nimekirja, eseme või nimekirja ja see lihtsalt minna läbi kõik väärtusi nagu foreach loop oleks. Nii et kui meil on hunnik ülesandeid, seda kutsuvad malli iga ülesande. Olgem joosta Meteor projekti lihtsalt näha, et see juhtub. Ma saan Meteor projekti lihtsalt Meteor või Meteor joosta. Ja nüüd Meteor lihtsalt vaja kiiresti valmistada projekti, alustada andmebaasi vajadusel ja siis pärast app kohapeal. Me ei saa minna meie veebibrauser nüüd. Ja me näeme, et me on väga lihtne rakendus. Nii, mida me nägime näitas üles oli tegelikult esimene etapp, esimene etapp faili. Liigume edasi samm kahe ainult sellepärast, Ma arvan, et see on sama eesmärk. Ma lihtsalt muuta et samm kahe kataloog ja joosta Meteor jälle nii näeme template me lihtsalt koos töötanud. Jah, küsimus? Sihtrühm: Kui me saada luba eitas, on selle-- mis see nõudis, et? ROGER Żurawicki: Kui näed Meteor perspektiivis ja teil on luba eitada, mõned failid ei pruugi olla õige loata komplekti. Nii et sa pead kontrollima, kus load on välja lülitatud. Nad võivad olla maha Sinu Meteor projekti või nad võivad olla maha Meteor failid ise. Sihtrühm: Kui ma alla laadinud just nüüd Teie github, siis mida ma peaksin tegema [Kuuldamatu]? ROGER Żurawicki: Kui soovite veenduda, saate kasutada seda, seal on käsk, mida saab käivitada. Lubage mul kiiresti kirjutada it out nii, et teised inimesed ei näe. Ma lähen, et avada uus sakk siin ja mine mu seminar kausta. Chmod on käsk muuta õigusi, ja te võite öelda r teha rekursiivselt iga faili. Ja õigusi, võite proovida 0755 veenduda, teil on täielik juurdepääs, ja kõik teised saavad lugeda. Ja kui sa lihtsalt kulgema Selle käsu, siis teen Kindlasti õigused on kontrollida kogu kataloogi. Jooks ls-l võib näidata load üksikasjalikumalt. See näeb OK. Mis kõige tähtsam on et teil on kõik kolm rwx kõik failid Seminari kataloogi. Kas see probleem lahendada? Sihtrühm: Ta ütleb puudu operant [kuuldamatu]. [Kuuldamatu] ROGER Żurawicki: Sa pead veenduge on dot lõpus teie käsutuses. Sihtrühm: [kuuldamatu]. ROGER Żurawicki: Hea küll. Olgem kiiresti tagasi minna kohaliku peremehe app oleme. Ja te näete, et meil on mõned ülesanded siin, nagu loodeti. Meil on hunnik CSS, mis sa ei pea muretsema. Meteor juhendaja lihtsalt annab see sulle teha teie teha nimekirja ilme natuke kenamaks kui tavaline HTML. Ja meil on JavaScript fail, mis Ma lähen üksikasjalikumalt Natuke hiljem aga see lihtsalt annab neid ülesandeid. See on ülesanne üks. See on ülesanne kaks. See on ülesanne kolm. Nii et see on andmed Meteor Läheb. Üks lahe asju Meteor on et muutused saavad teoks automaatselt. Kui ma tahtsin muuta esimese nimi ülesanne, seega oleks öelda, et see ei ole ülesande üks ja ma hoian seda, siis kui ma lähen web brauseriga saab värskendada, ja see automaatselt ütleb see ei ole ülesandeks ühe. Seda saab teha sama asja Ühelgi neist faile. Tee muutus asemel teha nimekiri on mul see minu teha nimekirja. Ja üks asi, mida märkasin, et ma ei pea isegi värskendada. Idee värskendav on selline lahendatud teile Meteor. Iga kord, kui ta tuvastab faili muudatusi, see laeb muudatusi teile. See toimib kõigi failide kas see on HTML, CSS, või JavaScript. Et näidata, mida see app näeks nagu ilma CSS, ma ei saa eemaldada kõik. Ja kui ta on asetanud, nüüd on teil mitte nii kena välimusega teha nimekirja. Paneme selle sisu tagasi. Ja kindlasti piisavalt, siis värskendab ja meie CSS on tagasi. Hea. Nüüd on võimalik edasi liikuda juhendaja. Räägime samm kaks, malle. See on see, mida me just nägin koos erinevaid ülesandeid. Meteor selgitab teile, mida malle ja kuidas see loogika toimib. Kuid olgem lihtsalt pilk koodi vaata, kas suudame mõtet sellest välja. Väga lihtne rakendused nagu mis meil on lihtne teha, esimene etapp, teine ​​samm, samm kolm sammu neli samm viis, meil ei ole ühtegi kausta. Meil ei ole server kausta mainisin. Meil ei ole kliendi kausta, et mainiti. Nii Meteor kestab kõik failid. Seda saad kasutada seda nii klient, nii serveris. Ja kui sa tahad osad Teie JavaScript koodi käivitumise lihtsalt kliendi, nad peavad tagama, et teil on kui avaldus, selline nagu see, mis oleme meie JavaScript fail siit. Nii Meteor, ainult siis, kui see on kliendile siis ma soovite määrata malli abistaja nimetatakse ülesandeid. Mis see kood tõesti ei ole see ütleb, et objekti nimega mall et Meteor annab. Ja me ei kavatse lisada abimees. Abilised on need ülesanded, need asjad nagu ülesanded. Näete, et kui me läheme tagasi HTML faili, me kutsusime iga aasta ülesanded. Ülesanded ei ole määratletud HTML. See on määratletud JavaScript. Ja Meteor peab teadma, mida ülesanded on kui me minema JavaScript siin. Ülesanded on see abimees. Helper, sa ei mõtle mallina varieeruv. Ja mida see ülesandeid teha? Noh, see tagastab väärtuste nimekirja. Sest see on nimekiri, me nimetame iga ta. Nii et miks me nimetame iga aasta ülesanded. Ja nüüd on meil ülesanne. Mis ülesanne teha? Noh, see on see nool siin pärast looksulg. See tähendab, et ülesanne on template. See ei ole abimees, nagu me just nägin. See mall oleme määratletud. Ja kui me oleme nimetanud seda? Oleme määratletud sellest allpool siin. Kõik selle malli ei ei muuda Nimekirja objekt, ja see nõuab teksti. Nüüd, teksti tundub olevat abimees, kuid ma näitan sulle et see on tegelikult ikka andmed liikme ülesandeid. Kui te helistate, saab ta läheb andmestruktuur natuke. Nagu foreach loop, siis nüüd ainult tundub esimese osa meie eesmärk. Me näeme, et tekst on määratletud siin meie eesmärk. Nii Meteor on tark teada, et me räägime sellest tekstist ei abimees nimetatakse teksti. See lihtsalt läheb see väärtus teksti siin ja näitab seda kui HTML, ja see, kuidas andmeid läheb alates JavaScripti HTML. Liikumine on aga selles näites me kõva kodeeritud neid väärtusi. Meteor teeb kaks tõesti toredaid asju meie jaoks. Lisaks live refresh, et me näitas, see ka õnnestub meie andmebaasis. Kui teil oli töötada PHP, sa pidid seadistada phpMyAdmin. Sa pidid veenduge, et teie lauad olid kõik kontrolli all. Sa pidid tegema palju tööd teha Veenduge, et teie andmed on sõnastatud õigesti, ja PHP võib suhelda. Nüüd, Meteor kasutab uue paradigma. See on moodsam viis käitlemise andmebaasis. See tehnoloogia nimega MongoDB. Just nagu JavaScript, nägime, et see ei ole oluline milliseid andmeid tuli. Kõik oli var. See ei olnud charstar. See ei olnud int. See ei olnud struktuure. See oli lihtsalt var see, var seda. MongoDB toimib omamoodi samamoodi. Sa ei pea määratlema oma tabelid. Sa ei pea ütlema tabelis on nimi, mis on int. See on, ma ei tea, dollar, mis on koma. See on lihtsalt need JavaScript objektid Kõigi nende vars sisuliselt. Ja see on tõesti võimas viis prototüüp oma app. Ja sellepärast Meteor ära seda. Kui läheme samm kolm, vaatame, mis on muutunud. Kui me vaatame kõike HTML, ei ole palju. CSS ei ole muutunud üldse. Aga väike muutus näeme HTML on meil muutunud, kuidas ülesandeid on määratletud. Ülesanded on nüüd funktsiooni. See tähendab, et iga kord, kui me tahame saada ülesandeid, me ei kavatse teha selle funktsiooni. See ei naase funktsiooni väärtus. Meteor on tark reaalselt sõita funktsiooni, et vaadata, mida me minema. Ja ta naaseb see asi, mida nimetatakse ülesandeid. Oleme kindlaks määratud ülesannete esimesel liinil, ja see on Mongo kollektsioon. Mongo viitab Andmebaasi Meteor kasutab, ja see uus tähendab lihtsalt teeme uus kollektsioon, nimetame seda ülesandeid. MySQL, see võrduks otsin tabel nimega ülesandeid. Mongo on kogude, mitte tabeleid. Nii et see lihtsalt tundub ülesannete eest. Nüüd malli meie abimees malli kõik me peame tegema, et saada kõik ülesanded on see funktsioon, leida ja see tühi traksidega. See on rohkem eriti Mongo süntaks. Seal on palju dokumentatsiooni online kuidas saad teha tõhusat ja tõesti kasulik Mongo päringud. Aga midagi sellist on hea piisavalt lihtsalt leida kõik andmed. Nüüd üks küsimusi, võite näha on see, et me kunagi tegelikult andmeid lisada. Mis juhtub, kui me tegelikult läbitud samm kolm? Lähme kiiresti minema Kolmas samm ja käivitada Meteor. Pange tähele, et ma pidin teise Meteor Projekti töötab kusagil mujal, nii Meteor ei meeldi, et. Ma lihtsalt kiiresti lähedal muud Meteor juhtimisega C, minna samm kolm, ja joosta Meteor uuesti. Pange tähele, see on hakanud MongoDB sest MongoDB on osa iga Meteor projekti. Nii et see ütleb minu taotlus on vigu. See on tore omadus Meteor on. See tagab teie HTML on hästi valideeritud. Lähme kiiresti vaadata, miks see võiks olla. Tundub Mul on kogemata kopeerida vale HTML koodi. Kui ma salvestada see nüüd, Meteor automaatselt uuesti serveriga ja nüüd app töötab ootuspäraselt. Pange tähele, et probleem, saate lihtsalt käivitada Samal HTML faili samm kaks, kopeerige see samm kolm. Me ei saa minna tagasi meie kohalikus masinas. Ja nüüd me näeme meil teha nimekirja. Hea, aga see on tühi. Me tegelikult ei ole mingit ülesandeid meie Mongo andmebaasis. Nii räägime vähe võimalusi saame seda teha. Kui me läheme tagasi terminali, me saab sulgeda ja käivitada Meteor Mongo. Kui te olete juba tuttav kuidas Meteor töötab, see tegelikult annab teile juurdepääsu täielikult MongoDB eest Meteor. Pange tähele, et sa pead näitama Meteor esimene selle tööle. Nii et kui ma saan selle uuel kaardil, I ei saa minna tagasi samasse kataloogi. Ja nüüd Meteor töötab just fine. See on kiire. Las ma teen selle natuke suurem nii näeme. See tundub natuke teistsugune kui mida võidakse kasutada teie tõesti ei pea kasutama Mongo. Kogu mõte mind siin nii et saate JavaScript. Aga kui sa oled uudishimulik, Mongo API ei kasutada SQL, Structured Query Language. Ta kasutab oma keelt, näeb välja palju nagu JavaScript. Väga kiiresti, leiame Tabelis kaudu db.tasks. Ja see mulle Selgub, kui võtame leida, mingi sarnane sellega, mida me pidasime Meteor, saame laadida kõik elemendid. Probleem on, me ei tegelikult mingit ülesannetega. Seega ei saa neid. Me ei saa sisestada, kuigi. Nii saame käivitada sisestada käsuga sisestada. Ja me lihtsalt anda see objekt ja me lihtsalt veenduge formaat on see, mida me ootame. Kui me vaatasime teine ​​etapp, nägime, et iga ülesande oli objekti tekst nagu võti ja mida iganes Sinu tegema kirje oli erinev. Nii et me saame midagi teha siin. Me ei ole seda sisestada ülesande nimetatakse Olen pärit Mongo. Ja me vajutage Enter, ja see töötab. Me ei saa käivitada uuesti leida, ja me näha, et seal on objekt siin. Mongo loovutab ta ID, mida tõesti ei pea muretsema. Mis on teie jaoks oluline on andmete paned, on andmed välja saad. Lähme tagasi meie kodulehel, Ja hei, meie ülesanne koormatud. Ja te näete, et sest Meteor on väga tark ja alati värskendab teie jaoks, ma ei ole puudutada lehel. See automaatselt laaditakse. Olgem tööle mõned koodi JavaScript küll seda teha. Nagu meil Node taga lõpuks täita läbi JavaScript, saame ka joosta JavaScript otse meie brauseritega. Sa saad seda teha funktsioon nimetatakse Kontrollige Element. Kui ma paremklõps lehejaotises, seal on võimalus nimetatakse Kontrollige Element. Kui näed brauser nagu Safari, siis oleks vaja sisse lülitada oma arendaja tööriistad, enne kui saad seda funktsiooni. Mida me hoolime on konsooli. Nii et me lihtsalt minna konsooli allosas. Nüüd saame kasutada mistahes JavaScript siin, nagu JavaScript Failide I näitas js näiteks. Aga nüüd vaatame ülesandeid. Me võime näidata meie käsutuses. Ja loodetavasti ma saaks teha see natuke suurem, et me kõik näeme. Kui võtame tasks.find, ja sa pead näha, et see on täpselt sama kood et JavaScript fail kasutab etapis kolm, see task.find. Meil saab sõita sama asi, ja Nüüd saame imelikke asju. Kuidas me tegelikult saada andmeid? Noh, meil on käivitada käsu nimeks tõmmata. See on väga kasulik silumiseks. Mis teil siin kursori, ja see on kena viis Meteor on optimeeritud edev andmeid. See kursori on kõik funktsioonid live ajakohastamiseks ja värskendav lehel kui midagi on muutunud. Aga see ei vii meid andmeid. Saame kaudu andmete tõmmata. Ja te näete meil on objekt ja see on nagu see, mis meil oli Mongo, koos ID ja teksti panime. Niisiis, kuidas me Objekti lisamine Meteor? Noh, meil on lihtsalt ülesanded. Ja siis me saame käivitada Sama sisestada käsk, andes sõnastik või objekti sama formaati, teksti ja siis ma tulen konsooli. Heitke pilk üle, sest kui ma seda teha, näitab üles veebilehel automaatselt. Pange tähele, et te ei pane midagi sa tahad neid punkte. See ei pea on fikseeritud struktuuri. Oleksin võinud võrdne number kolm ja b on võrdne vale. Ja see kõik toimib. Võin isegi ei soovi lisatud teksti üldse. See lihtsalt ei ole soovitatav küll, sest siis Meteor ei tea, mida kuvada. Kuid igal juhul me saada ID, ja see on ID objekti, mida saab kasutada. Nagu me jätkame Samm neli ja samm viis, õpetus näitab teile, kuidas see saate luua kasutajaliidese elemendid kasutades HTML sa tead, et luua erinevaid ülesandeid. Vaatame samm nelja tõesti kiiresti. Me näeme, et lisasime jaos sündmuste kohta. Malle saab olema abilised, mis meid andmeid. Aga see võib ka helistada sündmusi. Ja see on koht, kus asjad muutub kasulik, sest sündmused on see, mis juhtub, kui klõpsate erinevaid asju oma veebilehel. Siin on meie kood on öelnud meil lisada see sündmus. Lisa see siis, kui olete saatnud midagi klassi uus ülesanne. Mis teil siin on CSS valijat. Nii see lihtsalt otsib HTML element, mis on klassi uus ülesanne. Ja tundub, et juhul, nagu väidavad. Muud üritused hulka click, hover, topeltklõpsuga sarnane sellele, mida sa saad normaalse HTML. Mida sa annad siin nüüd funktsiooni. Ja sul võib olla oma kood, mis funktsiooni. See funktsioon on see, mis jõuab saada nimetatakse, kui olete saatnud selle uue ülesande. Vaatame HTML just nii me aru, mida see uus ülesanne on. Lisasime vorm siit klassi uus ülesanne. Ja see on sisend, mis võtab teksti. Ja see on koht, kus me lisab meie uusi ülesandeid. Olgem joosta samm neli kodulehel näha, kuidas see välja näeb. Me ei saa loobuda first out Euroopa MongoDB pidime meie eelmine Näiteks juhtimisega C. Ja olgem muuta see Samm neli kataloogi. Me käivitada Meteor uuesti alustada server. Ja kahjuks oli mul Meteor töötab teise terminali. Nii et ma lihtsalt lähen veenduda selle suletud. Olgem katkestab ja muuta et osa neli samm neli. OK. Nüüd on meie Meteor kood töötab. Ja te näete, et seda ajakohastada ilma meil isegi võttes värskendada lehel. Mis on muutunud siin on nüüd et meil ei ole mingit ülesandeid, aga meil on vorm siin, see teksti kasti lisada oma uusi ülesandeid. Ja me saame kirjuta meie ülesanne siin. Olen pärit HTML leht. Kui ma vajutage Enter, ta sai esitada. Näeme, mis juhtus, kui määratletud JavaScript koodi. Mida see funktsioon ei olnud võtta teksti kujul, ja siis lihtsalt nimetatakse tasks.insert, nagu me tegime konsooli. Samuti otsustas lisada createdAt kuupäeva. See, kuidas sa oleks täpsustada praegust aega. Pärast seda, see puhastab kujul tehes Kindlasti väärtus on tühi string. Ja siis kutsub tagasi false veenduda midagi juhtub. Kui pöördute vale alates vormi korral, mis takistab sundtäitmist. Ütle kujul on tegevus, nagu esitama PHP lehel. Kui te ei tagastata vale, siis tahaks tagasi tõsi. See oleks lõpuks seda esitanud. False intercepts seda ja lõpetab ta seal. Nii et oli vähe demo kohta kuidas Meteor toimib, ja me oleme jälginud juhendaja mõneks ajaks. Ja sa võid vastake tasuta jätkata seda teed. Seal on palju ressursse, ja õpetus on tegelikult lihtsalt väga hea umbes selgitades mis toimub. Ma tahan näidata teile nüüd Mõne minuti oleme jäänud, mida on mõned cooler omadused Meteor, ja millised on mõned kasulikum pakette. Üks suuri asju Meteor on see, et teil on pakettreiside süsteem. Võid kergesti lisada koodi et tuhanded arendajad olen kirjutanud üle maailma oma Meteor projekti. Üks näide selle kohta on, mida sa võiksid teha samm üheksa juhendaja, kus sa üritad lisada raamatupidamise Teie Meteor projekti. Kui meil on CS50 PHP Projekti oleks meil tugineda raames või oma koodi muuta kindel, et me kindlalt hakkama paroole ja kasutajanimesid ja ladustamiseks andmebaasi ja kõik see. Selgub, Meteor on mõned pakette seda teile, ja seda teha väga lihtsalt. Mida me saame teha, on lisada mõned paketid. Nii teeme seda õigust nüüd meie konsooli. Ma lähen loobuda projekti kohe minema lihtne-kõike. Nüüd, lihtne-kõike on projekt, mida on pärast seda teha samm 11 või samm 12, lõpus õpetamisel. Ja olgem kiiresti vaadata, et näha, Millised on erinevad funktsioonid meil. Lihtsalt veenduge, et see töötab. Mõnikord see võtab aega värskendada, kuid siin see on. Meil on võimalus peita ülesannete täitmisel, ja me saame logige sisse. Ja see tehti Meteor pakendis. On tore. Nüüd oleme kasutajanime ja parool tähis. Aga kui me tahame lisada teist liiki login mehhanism? Oletame, et ma tahtsin sisse sisse minu Meteor konto. Ma lähen jooksma meteoor add ja see on süntaks lisades pakette. Võin öelda, raamatupidamise ja accounts.meteor. See saab nüüd leida pakendi ja laadida. Te näete, et ma ei ole leidnud õige paketi nimi. Niisiis, kuidas sa teada paketid? Noh seal on suurepärane veebileht, mis on valmistatud kättesaadavaks Meteor inimesed, nimetatakse atmospherejs.com. Atmospherejs, üks sõna, dot com, on suur varamu leida kõik Meteor paketid hoidlasse. Ma ei otsi kontod, ja seejärel see näitan ma kõiki asjakohaseid asju, kõik paketid konto nimi. Kuigi see laeb, saame proovida lisades mõned teised paketid. Võib-olla Meteor pakett ei tööta just nüüd, aga võin lisada Facebook. Võin lisada konto ja seejärel joosta Meteor projekti uuesti. Kui see hakkab, vaatame mis on muutunud veebilehel. Võite see-- võin on värskendada siit. Mul on nuppu seadistada Facebook login. Ja siin, mul on kõik juhiseid Meteor on valmis teid luua Facebook app. Ja mida saab kasutada, et teavet, et lisada oma IDd. Kui see on tehtud, siis on teil Facebook login töötab teie app. Ma lihtsalt saada app ID ja saladus, lihtsalt näidata, kuidas see võiks töötada. Peate Facebook konto kasutada Facebook arendaja võimalusi. Lubage mul kiiresti leida Meteor võtmed, mis on vajalikud. Mul on veel üks Meteor projekti et ma lähen kasutada, ja ma olen lihtsalt kavatse võtta võtmed, et fail. Ja kui ma seda leida, ma lihtsalt võimalik kopeerida need võtmed minu Facebook. Nii et siin on võti. Ja see on saladus. Sa ei tohiks olla jagada seda inimestega. Ja siis annad talle oma app saladus. Ja see on nii Facebook tea, sa oled sina. Ja sa salvestada konfiguratsiooni. Ma arvan, et selles protsessis I on lõpetanud minu Meteor app. Nii et ma tahan teha et see on ikka veel seal. Okei, veenduge meie Meteor server töötab nii veebilehe töötab. Pange tähele, kui me lõpetame Meteor server, leht on ikka veel seal. See lihtsalt ei uuenda enam. Meteor server on vajalik hoolitsedes lehekülg on live. OK, ma olen esitanud, ja nüüd Ma ei Logi sisse Facebook. Nüüd on küsimus vaid võttes Facebook pop up ja paneb oma kontole info ja sisselogimine. Kui sa seda, Facebook võiks nag sa mõnda suuremat turvalisust. Nii me lihtsalt peatuda. Asi on selles, et kui sa oled teinud selle, pead Facebook login. Meteor on hunnik teised paketid samuti. Võite sisse logida Google+. Võite sisse logida github. Võite sisse logida Twitter. Või kui otsida, saate leida palju muid asju nagu Meetup, LinkedIn, ja Meteor Developer. Nii Meteor Developer oli pakett ma otsisin. meteoor kontosid lisada-meteoor-arendaja. Vahepeal ma Samuti tahan soovitada mõned teised paketid oma projektidele. See võib osutuda kasulikuks hulka jQuery pakendis. See võimaldab teil kasutada jQuery oma klientidele. Sa võid lihtsalt tee seda üks rida, ja Meteor siis veenduge, et olete kursis kohta jQuery. Olen ka soovitada houston: admin. See on selline nagu phpMyAdmin selline vahend oma MongoDB. See võimaldab teil muuta Oma andmete üsna kergesti ilma et peaks minema mongo, nagu ma oli varem teinud seminaril. Nüüd, et see jookseb, olgem joosta Meteor uuesti ja vaata, mida me teha saame. Sa märkad, et lisades mõned paketid Võib-olla neile tutvustame mõningaid hoiatusi. Sa ei pea muretsema sellest Houston. Nii saame nüüd võimalus seadistada Meteor admin. Ja nad teile suunad Kui soovite määrata, et üles. Me võime ka nüüd minna / admin. See on toonud teile poolt houston pakendis. Ja see on Meteor admin liides. Sa lihtsalt luua admin konto, nii nagu. Ja kui sa värskenda lehekülge, võite mõned kogud ilmumise. See on väga kasulik vahend, ja ma soovitan seda. Te näete, et kuna Houston andis mõned vead, meil ei ole mingit kogud näita üles just nüüd. Kuidas sa kasutad Houston hoolitsedes selle funktsiooni saab kutsus oma lihtsa kõike. Nii houston ei tean, mida mu ülesanded. Oleme loonud Mongo kogumist nimetatakse ülesandeid. Lähme lihtsa kõike ja lihtsalt veenduge, et JavaScript, oleme lisanud ülesandeid meie kogudest. Me oleme nüüd salvestatud, ja see hoone taotluse, värskendav. Ja vaatame. Nüüd on meil mõned ülesanded. Ja me saame lisada mõned uued ülesanded. Aga kui me tahame, et lisada ülesandeid, teeme seda app ise. Nüüd saame lisada mõned andmed. Tere, see on ülesanne. Tundub omamoodi kummaline, et me ei näe ülesandeid. Me võiksite vaadata, kui me saime tahes vigu siin, või äkki kuskil mujal. Kui me astume admin, mis tundub kummaline. Kui te tõmmake varamu Pärast seminari, Ma veenduge, et lihtne-kõike töötab Houstonis. Kahjuks ei tundu toiminud just praegu. Kas on muid küsimusi? Houston tavaliselt on vahend, mis toimib väga hästi. Houston konkreetselt on natuke buggier kui teised need, kuid ma ei soovita seda, kui see töötab. Jah. Sihtrühm: Mida teha Facebooki paketi Kui kasutaja on sisse loginud sisse oma Facebook? ROGER Żurawicki: Kui kasutaja sisse loginud, võite helistada Facebook API. Palju, mis asub rohkem kuidas Facebook avab oma API. Meteor veenduge on seos. Aga kõik peale seda on küsimus õppida, kuidas kasutada Facebook API. Sihtrühm: [kuuldamatu]. ROGER Żurawicki: Hea küll. Tänan teid väga Selle CS50 seminar Meteor. Kui teil on küsimusi, saate e-posti mind minu e-posti aadress Allpool loetletud seminar. Ja ma hea meelega Teie küsimustele. Ma ka olema CS50 hackathon peaks vajate abi oma Meteor projekte. Täname vaadates.