[Гуляе музыка] Роджэр ZURAWICKI: Прывітанне, мой Назва Роджэр Zurawicki, і я буду пакрываць Семінар CS50 Метэор. Метэор новая структура прысвечана новага тыпу сеткі, ня PHP рабіць запыты туды і назад выгляд вэб-мы бачылі ў наборы PHPP, але больш дынамічным JavaScript частцы палатна. Рэчы Метэор можаце зрабіць ўключае ў сябе Жывая Абнаўленне і неадкладна паведамляючы паміж карыстальнікамі аднаго і таго ж сайта. Для гэтага семінара, мы маем код размешчаны на маім GitHub. Вы можаце перайсці па гэтым адрасе і загрузіце яго. Калі вы ведаеце, як выкарыстоўваць Git, Вы можаце кланаваць рэпазітар. Калі вы не ведаеце, як выкарыстоўваць Git ці не выкарыстоўваецца GitHub, што цалкам нармальна. Я пакажу вам, вельмі хутка як мы можам перайсці да GitHub, і ёсць магчымасць спампаваць ZIP тут. Пасля загрузкі гэтага каталога, вы можа пачаць гуляць з нашым кодам. Больш падрабязная інфармацыя аб Метэор можна знайсці на meteor.com. У тэчцы семінар, я на самой справе ёсць некалькі праектаў Метэор мы можам выкарыстоўваць. Адзін з тэчак мы маем у нашым Семінар Праект Todos дадатак. Так што, калі я іду ў ёй я, усталяваны Метэор. Такім чынам, каб запусціць яго, мне проста трэба ўвесці Метэор, і Метэор будзе ўсталяваць. Як вы можаце бачыць, мы павінны пераканайцеся, што мы ўсталявалі Метэор. Так што я проста хачу, каб Запусціце яго яшчэ адзін раз каб пераканацца, што Meteor усталяваны правільна. Хоць у мяне ёсць Метэор ўстаноўка, я магу паказаць вам, Некаторыя з іх жывуць дэма-Метэор сайтаў будзе жыць прама цяпер у Інтэрнэце. У мяне ёсць дэма наша дадатак. Вы можаце атрымаць да яго доступ па адрасе. Гэта зрабіць дадатак, якое мы ёсць у нашым каталогу семінара. URL для гэтага з'яўляецца rozu-rabbit.meteor.com. Вы ўбачыце, што Meteor будзе на самой справе правесці метэора праекты бясплатна. І ў канцы семінара, Вы будзеце ў стане зрабіць гэта, а таксама. Гэта зрабіць спіс дадатак. І вы можаце ўвайсці ў сістэму стварыць рахункі і дадаваць задачы. Вы можаце зарэгістравацца як так. І зараз, калі ў вас ёсць кошт, вы можаце дадаваць задачы. Напрыклад, адна з задач я магчыма, спатрэбіцца пайсці забраць сваю пральню. І калі вы пра гэта сайт у Інтэрнэце, вам фактычна бачыць гэтую задачу Ваш кампутар у рэжыме рэальнага часу. Я магу паказаць вам хуткі дэма гэта, адкрыўшы Rožu труса У іншай ўкладцы з тым жа URL. І мы бачым, што тыя ж самыя дадзеныя ідзе ўверх. Мы таксама можам запусціць яго ў іншы браўзэр. Скажыце, што я запусціць яго ў Safari. Такім чынам, мы не ўвайшлі ў сістэму. Такім чынам, мы маем тую ж Метэор прыкладання, і як толькі ён загружае, мы ўбачым тыя ж дадзеныя, мы рабілі ў першай. Як вы можаце бачыць, я не ўвайшлі ў тут. І калі дадзеныя аўдыторыя чэкі, ён абнаўляе на ўсіх браўзэрах адначасова. Гэта адзін з вельмі Класныя магчымасці каля Метэор. Амаль без працы, вы ёсць жывы абнаўлення прыкладанне што змены на ўсіх Вашы прылад адначасова. Калі я ўсталюеце сцяжок тут ў маім зрабіць спіс, у нас будзе, у маёй іншы браўзэр Chrome, Пункт птушка. І гэта адбываецца імгненна. Добра. Так што, падобна Метэор Ўстаноўка гатовая цяпер. Такім чынам, зараз давайце вернемся да Todos прыкладанне і запусціць гэта на мясцовым узроўні. Калі ў вас ёсць праект Метэор, вы можаце проста запусціце яго з дапамогай каманды Meteor. Пасля таго, як вы зробіце гэта, Метэор будзе выканаць некаторыя падрыхтоўчыя каб пераканацца, што ўсе ваш код у цуглях. А потым скажу вам, што Праект ужо гатовы, каб Яму служылі. Вы, магчыма, спатрэбіцца, каб вашы Брандмаўэр, калі ваш кампутар блокі, якія Вы. Так што Метэор казаў мне, Прама зараз, што на гэтым сайце мясцовы з маім кампутарам, я бачу, што гэта Метэор праект. Звярніце ўвагу, што прама цяпер, маё прыкладанне не даступныя ў Інтэрнэт. Мы раскажам, як прывесці свой Meteor Дадатак да жывой сайце трохі пазней. Так што я проста хачу, каб скапіяваць гэты URL цяпер і ідзіце ў Google Chrome. І гэта зрабіць спіс з прыкладу. Вы можаце бачыць, што яны рэалізаваны некалькі больш магчымасцяў тут. У нас ёсць розныя ўкладкі, мы маюць тыя ж параметры уліковых запісаў, і мы можам дадаць новыя спісы. Цяпер адзін з сапраўды карысная функцыя аб Метэор з'яўляецца тое, што не толькі гэта можа працаваць на вашым вэб-браўзэры, але вы таксама можаце стварыць роднай iPhone і Android прыкладання праз інструмент пад назвай PhoneGap. Такім чынам, некаторыя праекты прыйдзе папярэдне наладжаны для працы КСН, як гэты ToDos прыкладання. Такім чынам, усё, што трэба зрабіць, каб запусціць яго ў ІА гэта ўвесці Метэор, Выканаць, а затым IOS. І калі я гэта зраблю, Метэор падрыхтуе пакет зноў. А потым, калі ён будзе гатовы, ён будзе загрузіць сімулятар IOS па маёй камандзе. Заўвага Вы можаце запусціць IOS прыкладання Калі ў вас ёсць кампутар Mac. Вы можаце запускаць прыкладання на Android на ўсіх платформах. Такім чынам, зараз вы можаце бачыць, што мой iPhone сімулятар прыдумаў на маім экране. І праз хвіліну, гэта будзе загрузіць з дадаткам. Калі мы зробім гэта, Проста крыху менш, каб змясціцца на экране, мы бачым, у нас ёсць iPhone дадатак. І толькі так мы не заблытацца, давайце зробім што мы знаходзімся на такі ж сайт, лакальны хост 3000. Так прама тут прыклад метэорнага дадатак, якое я, Todos дадатак, працуе як на тэлефон і вэб-браўзэр. І калі я змяніць матэрыял ў вэб-браўзэры, ён адразу ж ідзе да тэлефона. І я магу выдаліць што-небудзь па тэлефоне, і змены ў вэб-браўзэры. Цяпер, як правіла, для стварэння ўласных тэлефон дадатак для прашыўкай або Android, Вы павінны ведаць, альбо Java або Objective C. тэхналогія выкарыстоўвае Метэор каб JavaScript для працы ў якасці ваша прыкладанне называецца PhoneGap. Што ваша прыкладанне па сутнасці гэта з'яўляецца вэб-браўзэр. І Метэор апрацоўвае ўсе Хітрасць якія ўдзельнічаюць для чаго, што вэб-браўзэр Ваш iPhone або ваш Android прылада. Вы можаце бачыць, што Карыстацкі інтэрфейс з'яўляецца гладкім, і гэта выглядае і адчувае сябе вельмі гэтак жа, як роднае прыкладанне. Звярніце ўвагу, што калі я іду да дома Экран цяпер, я таксама атрымліваю значок. Гэта не сайт, як вы знойдзеце ў Safari. Гэта яго ўласнае прыкладанне. Вы можаце ўсталяваць і выдаліць яго, калі вы хочаце. Мы можам коратка паказаць вам, што код для гэтага віду нязробленым прыкладанне выглядае. Калі вы паглядзіце ў тэчцы ToDos, Вы ўбачыце шмат тэчак. Але на працягу семінара, мы будзем зразумець, што кожная тэчка выкарыстоўваецца. Давайце ў тэрмінал, каб мы можаце бачыць файлы трохі лепш. Я збіраюся націснуць Control C для прыпынку сервера, і цяпер я вярнуўся ў ToDos прыкладання. У мяне ёсць розныя тэчкі тут, як Тэчка кліента, тэчка сервера. І гэтыя тэчкі проста азначае, што усё ў тэчку кліента выконваюцца на вашым вэб-браўзэры. Усё ў тэчку на серверы выконваюцца на серверы. Тое, што я хачу адзначыць з гэта тое, што мы мелі калі ў нас быў тэлефонны працуе і Наш вэб-браўзэр, гэта былі кліенты. Але тое, што працуе ў тэрмінал, гэта сервер. У нас ёсць іншыя тэчкі, як Lib, які з'яўляецца код бібліятэкі, як ваш памочнік функцыі, якія вы можаце выкарыстоўваць на кліенце і на серверы. І тады ў вас ёсць грамадскі папкі і рэсурсы Тэчка неабходна для атрымання Вашы малюнкі і іншыя CSS загружаны. Калі ў сістэме ўсталяваны Метэор, мы будзем працягнуць падручнік для Meteor. Вы можаце перайсці па гэтым адрасе, meteor.com/install, каб атрымаць камандную радок, што я паказалі, што ўсталёўвае Метэор. Мы пройдзем праз першы некалькі крокаў, каб атрымаць лепш думаюць пра тое, як усталяваць Метэор. Але спачатку, я думаю, што гэта важна, што мы разгледзім трохі JavaScript. Каб паказаць вам некаторыя прыклады таго, як наша C веды могуць быць пераведзены у JavaScript, у мяне створана некалькі прыкладаў. Яны знаходзяцца ў каталогу JS. Так што, калі ў семінарах тэчку, якую вы Глядзі, там тэчка пад назвай JS. І тут, у нас ёсць некалькі прыкладаў. Давайце адкрыць першы Прыклад ўбачыць вельмі хутка. Тое, што мы бачым ваш стандартны прывітанне свет каманды. Вы заўважылі, у C, што вы маюць дастаткова некалькі радкоў. І як CS50 студэнты ведаюць, мы павінны асноўную функцыю, і мы павінны ўключаць у сябе стандарт I / O бібліятэку з тым, каб выклікаць Printf. Давайце паглядзім на тое, як JavaScript параўноўвае. Я збіраюся адкрыць ex1.js. Каментары з тое, што C код будзе выглядаць, і ніжэй лініі ўсё Вы павінны працаваць у вузел. Вам не трэба галоўнай функцыі, вам не трэба ўключаць любыя файлы, і вам не трэба, каб вярнуцца. Вы проста патэлефануеце console.log. Гэта эквівалент вашай Printf. І ён прымае тое ж самае Аргументы PRINTF б. І для таго, каб запусціць яго, замест таго, каб зрабіць EX1, вы б проста патэлефануеце Вузел ex1.js. Вы пішаце вузел, а затым файла і ён будзе запушчаны. Гэта не кампілююцца. JavaScript з'яўляецца інтэрпрэтаванай мовай. Такім чынам, не трэба будзе складзены, перш чым ён бегчы. Калі б я хацеў, каб запусціць ex1.c, Я павінен зрабіць гэта першым, і тады я магу запусціць выкананы каб атрымаць той жа вынік. Давайце хутка разгледзім некаторыя іншыя паняцці JavaScript. Давайце паглядзім на прыкладзе двух. У ex2.js, у ex2.c, мы можам бачыць, што ў нас ёсць некаторы код. Дазвольце мне хутка перайсці да лепш тэкставы рэдактар які пакажа іх новыя лініі трохі лепш. Добра. Тут мы маем прыклад 2.c. Тут мы маем розныя тыпы што мы раздрукоўкі. І як мы ведаем, Printf прымае розныя аргументы адсоткаў для доступу да розных кавалкі дадзеных. Калі мы хочам, каб раздрукаваць Радок, мы называем% S. Калі мы хочам выклікаць у аперацыях з якая плавае Нумар пункту, мы патэлефанавалі% F. І няма ніякага простага спосабу называць Boolean яго сапраўднае або ілжывае значэнне. Але калі вы выкарыстоўваеце% D, вы можаце атрымаць 0 або 1 для праўды і хлусні. JavaScript з'яўляецца трохі лепш для нас. У JavaScript, давайце паглядзім на некаторыя адрозненні ў нас ёсць у гэтым файле. Па-першае, вы заўважыце, што ў C мы павінны ініцыялізаваць кожную зменную з тыпам. S з'яўляецца сімвал зоркі. Гэта радок, і не можа быць іншага тыпу. N з'яўляецца якая плавае кропкай. B з'яўляецца Bool. Але ў JavaScript, ёсць дынамічныя тыпы. Гэта азначае, што вы не трэба сказаць наяўнасць якія тыпы вашыя зменныя будуць. Вы проста кажаце скланенне для зменнай, імя зменнай, а затым яго кошту. Так Var можа быць што заўгодна на самай справе. Гэта можа быць радок. Гэта можа быць лік з якая плавае кропкай. Гэта можа быць знак. Гэта можа быць Boolean. І часопіс кансоль працуе крыху па-іншаму. Калі вы хочаце надрукаваць Колькасць, вы выклікаеце% D. Але большасць значэнняў можа быць друкуецца ў выглядзе радкоў проста выдатна. Давайце запусцім гэта ў вузел каб паглядзець, што адбудзецца. Я магу назваць Вузел ex2.js, і мы атрымліваем Printf са значэннямі CS50, N як лік з якая плавае кропкай, а затым B як лагічны пераўтворыцца ў радок праўда. Што, калі мы зрабілі прыклад 2.C? Ну, у нас яшчэ ёсць некаторыя больш непрыемнасцяў з Printf. Звярніце ўвагу, што з якая плавае кропкай Колькасць павінен быць адфарматаваны няправільна, і што Boolean проста не можа будзе адлюстроўвацца як сапраўднае або ілжывае. Добра. Зараз давайце паглядзім на прыкладзе трох. У прыкладзе тры, мы паказваем як вы будзеце выкарыстоўваць для завесы. На самай справе, гэта вельмі проста. Адна з прыемных рэчаў аб JavaScript з'яўляецца тое, што яна заснаваная C. Гэта азначае, што многія з вашых код будзе выглядаць вельмі падобна і адчуваю сябе вельмі шмат ж. На працягу цыклу, адзінае, што што сапраўды змянілася тут ёсць замест INT I, у нас ёсць вар я. Мы ўсё яшчэ можам прызначыць яго шанаваць нуля, пераканайцеся, што гэта менш, чым пяць, і павялічваем яго на адзінку з аператарам ++. Мы называем console.log на I, і што будзе друкаваць нам шэраг з кожнай лініі. Давайце запусцім яго вельмі хутка каб убачыць, што ён выводзіць. Мы атрымліваем новы нумар у кожнай радку. Яшчэ адна рэч, я хачу, каб ты адзначыць з console.log гэта вы не павінны напісаць Зваротная касая рыса п, для новай лініі. Console.log будзе друкаваць усё на сваёй уласнай лініі. Гэта добрая магчымасць што JavaScript дае нам. Зараз давайце адкрыем прыклад чатыры. У прыкладзе чатырох, спачатку ў C, мы заклікаем некалькі функцый. Звярніце ўвагу, што мы павінны абвясьціць функцыі, перш чым мы выкарыстоўваем іх у меню. Калі б мы мелі галоўны першай і затым дадаць, а затым высокі, зрабіць, ляск, або GCC будзе даць нам памылку аб тым, што ён не ведае, што высокая. Ён не ведае, што надбудова ёсць. Такім чынам, у C, вы павінны быць пераборлівыя аб Парадак, у якім вы тэлефануеце сваіх функцыях. Давайце паглядзім на тое, як вы можаце зрабіць гэта ў JavaScript. У нас ёсць розныя файлы, таму што некалькі розных спосабаў зрабіць гэта. Адным з спосабаў з'яўляецца ў значнай ступені прамая трансляцыя. Таму што функцый у C вяртаюцца тыпы, і JavaScript не ведаю, ці догляд аб тым, які вы вернецеся, Вы не пішаце тып. Замест гэтага, вам проста трэба напісаць функцыю, і ўсё даволі гэтак жа, як раней. Калі ў вас ёсць пераменная, як і ў Дадамо, нам проста трэба напісаць х і у. Нам не трэба, каб сказаць х Int. Нам не трэба, каб сказаць у з'яўляецца Int. Вернемся з тым жа сінтаксісам. Для высокая, мы аб'явім яго з функцыю замест несапраўднымі. Звярніце ўвагу, ці што гэта, несапраўдным або не-пустата, яна па-ранейшаму ўсё тыя ж функцыі. І мы проста не паставіць што-небудзь у дужках, і гэта выглядае вельмі падобна на код C. А ўнізе, мы можам назваць яго ніжэй. Калі мы паглядзім на прыкладзе 4b, мы заўважаем, што я змяніў некаторыя рэчы. Адзінае, што я змяніў сапраўды, хоць гэта парадак. У нас ёсць тое ж самае функцыі, але цяпер яны заявіў пасля яны выкарыстоўваюцца ў console.log і высока на лініі 18, 19. Калі вы зрабілі гэта ў C, зрабіць б кінуць памылку. Вось, гэта працуе проста выдатна. І я магу паказаць гэта вам называючы вузлоў на 4b напрыклад. Іншы спосаб, якім мы можам выклікаць функцыі гэта захаванне функцыі ў якасці зменных. Як я ўжо сказаў, пераменная можа мець любы тып. Адзін з тыпаў зменнай можа мець гэта функцыя. Так што, калі вы паглядзіце на прыкладзе 4с, тое, што я змяніў тут пераменная дадаць замест функцыі доп. А цяпер дадайце роўная функцыі. Гэтая функцыя тут з'яўляецца ананімным. Гэта не мае ніякага назвы, так што гэта проста функцыю, а затым у дужках. Сінтаксіс пасля гэтага не змяняецца, але вы сапраўды павінны мець на ўвазе, што ў вас ёсць пераменная, што вы захоўвання функцыі ў Дадаць і пераменная, якую вы захоўваеце ў высокай. Таму што дадаваць і высокага цяпер зменныя а не функцыі, што нешта мяняецца. Гэта агульная памылка я бачу ў шмат сцэнарыяў JavaScript людзей, і што-то трымаць у розуме. Калі я запускаю гэта, давайце паглядзім, што адбудзецца. Я атрымліваю паведамленне пра памылку. Гэта кажа не вызначана ў гэтай кропцы. Так што гэта кажа гэта не ведаю, што дадаць ,. Таму што цяпер дадаць, ня Функцыя, дадаць, пераменная. І вы на самой справе не дадзена дадаць значэнне ўсё ж, калі вы выкарыстоўвалі яго. Гэта падводзіць нас да прыкладу 4D, дзе, калі Вы хочаце выкарыстоўваць зменныя і функцыі, вам проста трэба пераканацца, што яны атрымаць значэнне, перш чым яны прывыклі. Давайце пяройдзем да прыкладу пяці тады. Тут мы гаворым пра Структуры ў С у З, структуры ёсць гэты фіксаваную структуру для іх таму што вы павінны абвясьціць іх перш чым выкарыстоўваць яго, і Вы сказаць, што я студэнт, і кожны студэнт мае роўна адно імя, на адзін год, адзін падлогу. Ён павінен мець усе з іх. Яна не можа ёсць якія-небудзь іншыя значэнні, і яны павінны быць канкрэтныя віды. Тады мы можам ініцыялізаваць структура ў гэтым прыгожым сінтаксісу таму што ён ведае, заказ. Так ён ведае, што Роджэр імя. Яна ведае, што 2016 год і М Пол таму што мы сказалі, што гэта гэта Спіс структура студэнт. І тады вы можаце раздрукаваць гэта, доступ да s.name. Давайце паглядзім, як мы б канвертаваць, што JavaScript. Звярніце ўвагу, што ˘S зараз Пераменная, і няма ніякага тыпу. Гэта проста пераменная зноў. Таму што гэта не мае значэння, калі тып гэтай зменнай паказальнік, гэта структура, або што-небудзь яшчэ. У нас ёсць трохі іншы сінтаксіс. Гэты сінтаксіс сінтаксіс аб'ект. Вы, магчыма, бачылі яго ў JSON. JSON на самай справе пазначае JavaScript Object Notation. Гэта, як вы вызначаеце аб'екты ў JavaScript. У нас ёсць ключ, які з'яўляецца значэнне, напрыклад, імя. І мы даем гэта каштоўнасці, на з другога боку тоўстай кішкі. І яшчэ адна рэч, каб мець на ўвазе, вас не трэба мець імя і год і падлога для аб'екта. Аб'ект не можа мець ніякіх значэнняў. Ён можа мець столькі, колькі вы хочаце. Мы можам выкарыстоўваць гэтыя аб'екты ў проста Сапраўды гэтак жа мы будзем выкарыстоўваць на структуру, s.name. Мы можам запусціць яго вельмі хутка робячы вузел прыклад 5.c. Мы не можам на самай справе запусціць файл C у вузле. Ён не ведае, што C ёсць. Гэта ведае толькі наяўнасць. Калі мы запусцім ex5.js, мы атрымліваем значэнне, якое мы чакалі. Давайце пяройдзем да прыкладу шэсць. Тут я проста хачу пагаварыць трохі крыху больш пра масівах JavaScript таму што яны трохі інакш, чым вы выкарыстоўваецца ў С. Масівы Камбінацыі, Не са дужкамі, як у З, з фігурнымі дужкамі, але дужкі. Вы можаце мець пусты масіў, як обр ў чацвёртым радку. Вы можаце мець масівы з некалькімі значэннямі. І доступ да іх сапраўды гэтак жа, у С. Да лініі сем, усё здаецца даволі простым. Адна невялікая розніца тут у радку 10. Чынам, вы атрымаеце даўжыню масіў, проста патэлефанаваўшы .Length. Масіў можа быць на самой справе разглядацца як аб'ект, і гэты аб'ект мае ўласцівасць даўжыні што вы называеце, каб атрымаць даўжыню яго. Звярніце ўвагу, што гэта адрозніваецца у З, так як у C вы павінны ведаць даўжыню ваш аб'ект раней часу. Так Яшчэ адна прыемная рэч пра масівах з'яўляецца тое, што вы можаце мець розныя тыпы. Калі ў вас ёсць масіў у З, то масівы пэўнага значэння, альбо паказальнік структура або плавае або [неразборліва]. Тут вы можаце мець розныя значэнні. Спачатку я была лік з якая плавае кропкай, то Boolean, потым яшчэ цэлы лік. А на самай справе, яны могуць змяняць тыпы таксама. Паглядзіце на лініі 16. Масіў двух мяняецца ад таго, Колькасць, цэлы лік, у радок. Яшчэ адна прыемная рэч пра масівах тут у радку 19, яны маюць бясконцую памер. Вы можаце проста сказаць, што я хачу сотыя элемент будзе радок нармальна. І гэта, здаецца, не робяць сэнс, таму што масіў толькі ёсць месца для трох элементаў, так канец павінен быць два. Але калі вы робіце гэта, давайце бачыць, што масіў тры становіцца. Мы праводзім б гэта хутка з прыкладамі вузел six.js. Мы атрымліваем гэта вельмі доўга масіў, і тое, што адбываецца што мы маем першыя некалькі элементаў а затым куча нарыхтовак пакуль мы не атрымаем нашу радок. JavaScript запаўняе Масіў, як гэта неабходна. Давайце, нарэшце, вярнуцца да нашага апошняму прыкладу. Тут мы маем спіс розных студэнтаў. Я хачу пагаварыць трохі Крыху пра некаторых добрых аспектаў ня для завес ў JavaScript. У C, для завес выгляд абмежаваны. Яны маюць фіксаваную структуру, дзе вы ёсць пераменная, у вас ёсць ўмова, і тады вы нешта зрабіць У канцы цыклу. І, вядома, гэта працуе ў JavaScript, як мы бачылі ў папярэдніх прыкладах. Але ў нас ёсць больш добрыя спосабы рабіць гэта ў JavaScript. Гэта называецца цыкл па кожнаму элементу. На жаль, давайце вернемся прыкладу сем тут. Мы можам таксама сказаць, раздзел спіс. Так дайце мне кожны I або кожны індэкс у гэтым спісе. Тады мы можам атрымаць студэнт проста выклікаючы раздзел I. Так што ўсё кода, які ўстанаўлівае I роўная нуля, і пераканаўшыся, што я менш, чым даўжыня і дадання ад аднаго да Я кожны раз, што гэта клапаціцца пра вас, а прыгожа з гэтай цыкл па кожнаму элементу. Мала таго, што кожнаму элементу завесы працаваць у спісах або масіваў, яны таксама працуюць на аб'ектах, што таксама прыемна. Вы можаце атрымаць імя кожнае ўласцівасць, проста прымаючы слоўнік або аб'ект, як студэнта, а затым проста кажу, дайце мне кожны ключ. Ключ будзе яны ўласцівасці, імя або дом. Дык што ж адбудзецца ў тым, што мы друкуем у першую чаргу імя, а затым дом кожнага студэнта. Я магу запусціць гэта ў вузел вельмі хутка, каб паказаць вам. Мы атрымліваем першы стыль C цыкл, дзе мы атрымліваем кожны аб'ект яго раздрукоўкі. І тады ў нас ёсць наяўнасць стыль, дзе вы можаце проста раздрукаваць кожны ключ і шануем індывідуальна. Добра. Цяпер, калі мы разгледзелі Node.js, я думаю, мы гатовыя пачаць працу з Meteor. Як я ўжо сказаў, Метэор зрабіў вялікую працу напісаць некалькі гатовых прыкладаў для вас, што вы можаце даследаваць праз Гэты падручнік ці ў папцы семінараў. Але тут я хачу пачаць больш з нуля. Давайце створым проста зрабіць заяўку. Гэта свайго роду базе, што ў зрабіць дадатак, якое я паказаў вам раней ,. У гэтым уроку, вы ўбачыце, што ёсць Каманда Meteor стварыць для стварыць новы праект Метэор. Вы павінны выклікаць гэта для таго, запуск праектаў Метэор, таму што гэта будуць працаваць каманды стварыць Метэор файлы, неабходныя для вашага праекта. Калі вы ідзяце ў тэрмінал, мы можам зайсці ў тэчку пад назвай першы крок. І КРОК ПЕРШЫ будзе адпавядаць Першы крок у гэтым уроку. Ўказанне папкі, крок адзін крок два, аж да пяці гадоў. І кожны з іх адпаведныя ў якасці кроку ў гэтым ўроку. Я збіраюся адкрыць яго ў маім тэкставым рэдактары тут так што мы можам убачыць трохі, што было створана. Заўважым, што чатыры асноўныя часткі. Там гэта каталог Метэор .meteor. І што вы, як правіла, ня трэба чапаць. Метэор клапоціцца аб што папка, і ён проста гарантуе, што ваш Праект будзе працаваць правільна. У нас таксама ёсць тры файла, HTML файлаў, Файл JavaScript, і файл CSS. Давайце спачатку пачнём з HTML-файл. На першы погляд, гэта выглядае як звычайны HTML дакумент. Але звярніце ўвагу, што ёсць некалькі адрозненняў. Адзін з іх, гэта не на самай справе поўны HTML дакумент. Мы прапускаючы HTML-тэгі. Гэта нармальна. У Метэор, вы не чакаецца каб стварыць гэтыя HTML тэгі. Гэта робіцца для вас. Вы хочаце, каб begin-- калі вы хочаце стварыць сайт, вам проста трэба, каб пачаць з галаўным пазнацы, вызначаюць, што, а затым вызначыць тэг цела. Але калі вы заўважылі, у гэтым HTML-файл, мы маем новы тэг. У нас ёсць шаблон тэг. Гэта не нармальна HTML. Гэта адмысловая версія HTML што Метэор робіць даступнымі для вас. Гэта называецца прастору бара. Вы можаце вызначыць шаблоны, як мала модулі, накшталт як дапаможныя функцыі, у З або код JavaScript. Гэты шаблон будзе ёсць імя называецца задачай. І вы можаце ўбачыць прама тут, на лініі 13, што вы можаце назваць гэтыя шаблоны. І тое, што Meteor будзе зрабіць, гэта проста запоўніць гэтых задач для вас. Яшчэ адна рэч, вы, магчыма, заўважыце, трохі адрозніваецца гэта кожная функцыя. Кожны з іх будзе прымаць зменную задачы і выгляд прайсці праз гэта у гэтым цыкл па кожнаму элементу мы ўбачыў у прыкладзе сямі гадоў. Гэта кожны можа ўзяць слоўнік ці спіс, аб'ект або спіс, і гэта будзе проста прайсці праз усе такія каштоўнасці, як у цыкл па кожнаму элементу будзе. Так што, калі ў нас ёсць куча задач, гэта будзем называць шаблон па кожным задання. Давайце запусцім праект Метэор проста каб паглядзець, што гэта адбываецца. Я запусціць праект Метэор з проста Метэор або Метэор запуску. А цяпер Метэор проста трэба хутка падрыхтаваць праект, запусціць базу дадзеных па меры неабходнасці, а затым апублікаваць прыкладанне лакальна. Мы можам пайсці на наш вэб-браўзэры цяпер. І мы ўбачым, што мы ёсць вельмі простае прыкладанне. Такім чынам, што мы бачылі з'явіўся было на самай справе першы крок, крок адзін файл. Давайце пяройдзем да другога кроку толькі таму, што Я думаю, што ён будзе служыць той жа мэты. Я проста хачу, каб змяніць за крок два каталог і запусціць Метэор зноў так мы можам бачыць шаблон мы проста працаваў. Так, пытанне? АЎДЫТОРЫЯ: Калі мы атрымліваем дазвол адмоўлена, з'яўляецца that-- што яго называецца для гэтага? Роджэр ZURAWICKI: Калі вы працуеце Метэор бегчы, і ў вас ёсць дазвол адмоўлена, некаторыя з вашых файлаў не могуць мець правільны набор дазволаў. Такім чынам, вы павінны праверыць, дзе дазволаў выключаныя. Яны могуць быць з у Ваш праект Метэор, або яны могуць быць выключаныя ў Сябе Метэор файлы. АЎДЫТОРЫЯ: Калі я запампаваў яго зараз ад вашага GitHub, то што я павінен рабіць [Неразборліва]? Роджэр ZURAWICKI: Калі вы хочаце каб пераканацца, што вы можаце атрымаць да яго доступ, ёсць каманда, якую вы можаце запусціць. Дазвольце мне хутка запісаць яго так што іншыя людзі могуць бачыць яго. Я збіраюся адкрыць новую ўкладку тут і ідзі ў маёй тэчцы семінараў. Chmod з'яўляецца каманда змяніць дазволу, і вы можаце сказаць г, для зрабіць гэта рэкурсіўна для кожнага файла. І дазволу, вы можаце паспрабаваць 0755 каб пераканацца, што ў вас ёсць поўны доступ, і ўсё яшчэ можа чытаць. І калі вы проста запусціце Гэтая каманда, гэта зробіць што дазволу ў праверыць ўвесь каталог. Запуск LS-л можа паказаць вам Дазволу больш падрабязна. Гэта выглядае нармальна. Што самае галоўнае, што ў вас ёсць усе тры RWX для ўсіх файлаў у Каталог семінар. Хіба што вырашыць гэтую праблему? АЎДЫТОРЫЯ: Ён кажа адсутнічае оперантного [неразборліва]. [Неразборліва] Роджэр ZURAWICKI: Вы павінны пераканацца, што вы ёсць кропку ў канцы каманды. АЎДЫТОРЫЯ: [неразборліва]. Роджэр ZURAWICKI: Добра. Давайце хутка вярнуцца да лакальны хост, прыкладанне ў нас ёсць. І вы ўбачыце, што ў нас ёсць некалькі задач тут, як і чакалася. У нас ёсць куча CSS, які Вам не трэба турбавацца. Метэор падручнік проста дае вам гэта Каб зрабіць ваш, каб зрабіць спіс глядзець трохі лепш, чым просты HTML. І ў нас ёсць файл JavaScript, які Я пайду ў больш падрабязна крыху пазней, але гэта толькі дае гэтыя задачы. Гэта задача адна. Гэта задача двух. Гэта задача тры. Так што гэта дадзеныя Метэор становіцца. Адна з выдатных рэчаў пра Метэор што змены могуць адбыцца аўтаматычна. Калі б я хацеў змяніць Назва першай задачы, так што было б сказаць, што гэта не Задача адна, і я яго захаваць, Затым, калі я іду ў Інтэрнэце браўзэр, вы можаце абнавіць яго, і ён аўтаматычна кажа гэта не адказу адзін. Вы можаце зрабіць тое ж самае у любы з гэтых файлаў. Унесці змены, замест таго, каб рабіць Спіс, я буду мець гэта мой, каб зрабіць спіс. І адзінае, што вы толькі што заўважыў, што я нават не давядзецца абнавіць. Ідэя асвяжае выгляд што вырашаюцца для вас Метэор. Кожны раз, калі ён выяўляе змены файлаў, ён будзе загрузіць змены для вас. Гэта працуе для ўсіх файлаў, няхай гэта будзе гэта HTML, CSS, ці JavaScript. Каб паказаць вам, што гэта дадатак будзе выглядаць як без CSS, я магу выдаліць усё гэта. І калі ён перазагружаецца, зараз у вас ёсць не так сімпатычная, каб зрабіць спіс. Скажам, што ўтрыманне таму. І досыць дакладна, гэта асвяжае, і наш CSS вярнуўся. Выдатна. Цяпер мы можам рухацца далей з падручніка. Давайце пагаворым аб другім этапе, шаблоны. Гэта тое, што мы толькі што бачылі з рознымі задачамі. Метэор растлумачыць вам, што шаблоны і як гэтая логіка працуе. Але давайце паглядзім на код у убачыць, калі мы можам разабрацца ў ім. У вельмі простых прыкладанняў, як тое, што мы маем на просты рабіць, першы крок, другі крок, крок тры, чацвёрты этап, этап пяць, мы не маем ніякіх тэчак. Мы не маем сервер Тэчка я ўжо згадваў. Мы не маем кліента тэчка, у якой было сказана. Так Метэор будзе працаваць усе файлы. Гэта будзе запусціць яго як на Кліент, як на серверы. І калі вы хочаце часткі вашага JavaScript Код для запуску толькі на кліенце, яны павінны пераканацца, што ў вас ёсць калі заява, накшталт як, што мы маем у нашым JavaScript файла тут. Так Метэор, толькі калі гэта кліент, то я хачу, каб вызначыць шаблон дапаможныя званыя задачы. Гэты код на самай справе робіць гэта кажа, што ёсць Шаблон аб'ект, званы што Метэор забяспечвае. І мы збіраемся дадаць памочніка. Памочнікі гэтыя задачы, гэтыя рэчы, як задач. Вы ўбачыце, што, калі мы вернемся да HTML-файл, мы называлі адзін на задачы. Задачы не вызначаны ў HTML. Гэта вызначана ў JavaScript. І Метэор трэба ведаць, якія задачы з'яўляецца калі мы ідзем у JavaScript тут. Задачы гэта памочнік. Памочнік, вы можаце думаць аб яго ў якасці зменнай шаблону. І што задачы рабіць? Ну, гэта вяртае спіс значэнняў. Таму што гэта спіс, мы можам называць адзін у ёй. Дык вось чаму мы называем адзін на задачы. І цяпер у нас ёсць заданне. Што задачай зрабіць? Ну, гэта мае гэтую стрэлку тут пасля фігурныя дужкі. Гэта азначае, што задача шаблон. Гэта не памочнік, як тое, што мы толькі што бачылі. Гэта шаблон мы вызначылі. А дзе мы вызначылі гэта? Мы ўжо вызначылі яго ніжэй прама тут. Усё гэта шаблон робіць, гэта зрабіць Элемент спісу, і гэта выклікае тэкст. Цяпер, тэкст, здаецца, памочнік, але я пакажу вам, што гэта на самай справе яшчэ Член дадзеных задач. Калі вы выклікаеце сябар, ён пераходзіць у Структура дадзеных няшмат. Як цыкл па кожнаму элементу, цяпер ён выглядае проста на першы элемент у нашым аб'екце. Мы бачым, што тэкст вызначаецца тут, у нашым аб'екце. Так Метэор разумны, каб ведаць, што мы кажам пра тэкст, не памагаты называецца тэкст. Ён проста бярэ значэнне гэтага Тэкст тут і адлюстроўвае яго ў выглядзе HTML, і вось як ідзе дадзеныя ад JavaScript у HTML. Пераходзячы менш, у гэтым прыкладзе мы жорстка гэтыя значэння. Метэор робіць два вельмі прыемныя рэчы для нас. Акрамя таго, жывы абнаўлення, што мы паказалі, ён таксама кіруе нашай базы дадзеных. Калі б вам давялося працаваць з PHP, Вы павінны былі наладзіць PHPMYADMIN. Трэба было пераканацца, што ваш Сталы былі ўсе пад кантролем. Вы павінны былі зрабіць шмат працы, каб зрабіць што вашыя дадзеныя адфарматаваны некарэктна, і PHP можа мець зносіны з ім. Цяпер, Метэор выкарыстоўвае новую парадыгму. Гэта больш сучасны спосаб апрацоўкі базы дадзеных. Гэта тэхналогія, званая MongoDB. Гэтак жа, як у JavaScript, мы ўбачылі, што гэта не мае значэння, якія тыпы былі дадзеныя. Усё было вар. Гэта не было charstar. Гэта не было Int. Гэта не было структурай. Гэта было проста Var гэта, вар гэта. MongoDB выгляд працуе такім жа чынам. Вы не павінны вызначаць свае табліцы. Вы не павінны гаварыць табліцу мае імя, якое мае Int. Ён мае, я не ведаю даляр, які з'яўляецца дзесятковай. Гэта як раз гэтыя JavaScript аб'екты, усе гэтыя зменныя, па сутнасці. І гэта сапраўды магутны спосаб прататып вашага прыкладання. І вось чаму Метэор карыстаецца гэтым. Калі мы ідзем да трэцяга кроку, давайце паглядзім, што змянілася. Калі мы паглядзім на ToDos HTML, не так шмат. CSS не змянілася наогул. Але невялікая змена мы бачым у HTML гэта мы змяніліся, як задачы вызначаецца. Задачы цяпер функцыя. Гэта азначае, што кожны раз мы хочам атрымаць задачы, мы збіраемся запусціць гэтую функцыю. Ён не вяртаецца Функцыя ў якасці значэння. Метэор разумныя, каб рэальна працаваць Функцыя, каб убачыць тое, што мы выйсці. І гэта вяртае гэтую рэч, званую задачы. Мы ўжо вызначылі задачы на ​​першай лініі, і гэта калекцыя Монго. Монго мае на ўвазе база дадзеных Метэор выкарыстоўвае, і гэтая новая проста азначае, давайце зробім Новая калекцыя, назавем яго задач. У MySQL, то гэта будзе эквівалентна шукае табліцу з імем задач. Монго мае калекцыі, а не табліцы. Так што гэта проста выглядае для вырашэння задач. Цяпер, шаблон у нашым памочнік ў шаблоне, усё мы павінны зрабіць, каб атрымаць усе Задачы гэтая функцыя, знайсці і гэта пустое дужкі. Гэта больш, асабліва з сінтаксісам Монго. Там ёсць шмат Інтэрактыўная дакументацыя аб тым, як Вы можаце зрабіць эфектыўным і вельмі карысна Монго запытаў. Але што-то, як гэта добра дастаткова для проста знайсці ўсе дадзеныя. Цяпер адзін з пытанняў, якія вы можаце ўбачыць з'яўляецца тое, што мы ніколі не дадаваць дадзеныя. Так што ж адбываецца, калі мы рэальна працаваць тры крокі? Давайце хутка перайсці ў трэцяга кроку і запусціць Метэор. Звярніце ўвагу, што ў мяне быў іншы Метэор Праект працуе ў іншым месцы, так Метэор не падабаецца. Я проста хачу, каб хутка блізка да Іншае Метэор з кіравання C, перайсці ў тры крокі, і запусціць Метэор зноў. Звярніце ўвагу, што гэта пачынае MongoDB, таму што MongoDB з'яўляецца часткай кожнага праекта Метэор. Так ён кажа мая заяўка ўтрымлівае памылкі. Гэта добрая магчымасць Метэор мае. Гэта гарантуе, што вашыя HTML добра правераны. Давайце хутка паглядзім, чаму гэта можа быць. Здаецца, я выпадкова скапіяваныя няправільна HTML-код. Калі б я захаваць яго зараз, Метэор аўтаматычны перазапуск сервера, і цяпер прыкладанне працуе, як чакалася. Звярніце ўвагу, каб выправіць гэта, вы можаце проста запусціць жа HTML-файл з кроку два, скапіруйце яго ў тры крокі. Мы можам вярнуцца да нашым лакальным вузлу. І зараз мы бачым, у нас ёсць наш, каб зрабіць спіс. Выдатна, але ён пусты. Мы на самай справе не ёсць якія-небудзь задачы ў нашай базе дадзеных Монго. Такім чынам, давайце пагаворым аб Некалькі спосабаў, якімі мы можам зрабіць гэта. Калі мы вернемся да тэрмінала, мы можна закрыць яго і запусціць Метэор Монго. Калі вы знаёмыя з тым, як Метэор працуе, гэта на самай справе дае вам доступ ў поўнай MongoDB для Meteor. Звярніце ўвагу, што вы павінны быць запушчаныя Метэор спачатку для гэтага, каб працаваць. Так што, калі я запускаю гэта ў новай ўкладцы, я можа вярнуцца ў той жа каталог. А цяпер Метэор працуе проста выдатна. Гэта хуткае. Дазвольце мне трохі больш, таму мы можам бачыць. Гэта выглядае крыху па-іншаму, чым тое, што вы маглі б быць выкарыстаны для вас на самой справе не трэба выкарыстоўваць Монго. Увесь сэнс мне тут так што вы можаце выкарыстоўваць JavaScript. Але калі вам цікава, API Монго ня Выкарыстанне SQL структураваны мову запытаў. Ён выкарыстоўвае свой уласны мова, які выглядае як JavaScript. Вельмі хутка, мы можам знайсці Табліца дапамогай db.tasks. І гэта кажа мне, Аказваецца, што калі мы запусцім знайсці, выгляд падобны на тое, што мы мелі з Метэор, мы можам загрузіць усе элементы. Праблема ў тым, што мы робім не на самай справе ёсць нейкія задачы, вызначаныя. Таму ён не можа атрымаць іх. Мы можам ўставіць, хоць. Такім чынам, мы можам запусціць ўстаўку з каманднай ўстаўкі. І мы проста даць яму аб'ект, і мы проста пераканайцеся, што фармат, што мы чакаем. Калі мы глядзелі на два крокі, мы бачылі, што кожнай задачы быў аб'ект з тэкстам у якасці ключа і ўсё Ваш рабіць пункт быў ў якасці зменнай. Такім чынам, мы можам зрабіць што-то тут. Мы можам мець гэта ўставіць задачу называецца Я родам з Монго. І мы націскаем Enter, і ён працуе. Мы можам запусціць зноў знайсці, і мы бачыць, што ёсць аб'ект тут. Монго прысвойвае яму ідэнтыфікатар, які вам на самой справе не трэба турбавацца. Што важна для вас дадзеныя вы кладзе ў, гэта дадзеныя, вы будзеце вольныя. Давайце вернемся на нашым сайце, і эй, наша задача загружаны. І вы можаце бачыць, што таму Метэор вельмі разумны і заўсёды асвяжае для вас, я не павінны закрануць старонку. Ён аўтаматычна загружаны. Давайце запусціць код у JavaScript, хоць зрабіць гэта. Як мы вузел у спіне канца, каб выканаць з наяўнасць, мы таксама можам запусціць наяўнасць непасрэдна ў нашых браўзэрах. Вы можаце зрабіць гэта з дапамогай функцыі называецца Праверце элемент. Калі я пстрыкніце правай кнопкай мышы на раздзел старонкі, ёсць варыянт называецца Праверце элемент. Калі вы працуеце браўзэр, як Safari, вы магчыма, спатрэбіцца ўключыць свой распрацоўніка Інструменты перш чым вы атрымаеце гэтую функцыю. Тое, што мы клапоцімся пра тое, кансоль. Такім чынам, мы проста пайсці Кансоль ўнізе. Цяпер мы можам запусціць любую наяўнасць Тут, як і ў JavaScript файлы я паказаў у JS, напрыклад. Але цяпер давайце паглядзім на задачы. Мы можам працаваць наша каманда. І, спадзяюся, я буду ў стане зрабіць гэта крыху больш, так што мы ўсе можам бачыць. Калі мы запусцім tasks.find, і вы будзеце бачыць, што гэта той жа самы код Тое, што выкарыстоўвае стандартны файл JavaScript На трэцім этапе, гэта task.find. Мы можам запусціць тое ж самае, і зараз мы атрымліваем некаторыя дзіўныя рэчы. Як мы на самай справе атрымаць гэтыя дадзеныя? Ну, мы павінны запусціць гэты Каманда называецца выбарка. Гэта вельмі карысна для адладкі. Што вы атрымліваеце тут курсора, і гэта добры спосаб Метэор мае аптымізаваныя выбаркі дадзеных. Гэты курсор мае ўсе магчымасці для у прамым эфіры абнаўленне і абнавіць старонку калі што-то змянілася. Але ён не будзе атрымліваць нам дадзеныя. Мы можам атрымаць дадзеныя праз выбаркі. І вы бачыце, у нас ёсць аб'ект, і гэта проста падабаецца тое, што мы мелі ў Монго, з ID і тэкстам мы ўкладваем у. Так як жа мы ўстаўляем элемент у Метэор? Ну, мы проста павінны задач. І тады мы можам запусціць Тая ж каманда ўстаўкі, даючы слоўнік або аб'ект у тым жа фармаце, тэкст і тады я прыйшоў з кансолі. Зірніце вышэй, таму што, калі я зрабіць гэта, ён паказвае на вэб-сайце аўтаматычна. Звярніце ўвагу, што вы можаце пакласці ўсе Вы хочаце ў гэтых пунктаў. Гэта не павінна маюць фіксаваную структуру. Я мог бы роўная нумар тры і б роўна хлусня. І ўсё гэта працуе. Я магу нават выбраць, каб не ўключаюць у сябе тэкст наогул. Гэта проста не рэкамендуецца хоць, таму што тады Метэор не ведаю, што для адлюстравання. Але ў кожным выпадку, мы атрымаць ID, і гэта ID аб'екта вы можаце выкарыстоўваць. Паколькі мы працягваем з чацвёртага кроку і пятым кроку, падручнік пакажа вам шляху, што Вы можаце стварыць элементы карыстацкага інтэрфейсу з дапамогай HTML вы ведаеце, ствараць розныя задачы. Давайце паглядзім на чацвёртым этапе вельмі хутка. Мы ўбачым, што мы дадалі раздзел аб падзеях. Шаблоны могуць мець памочнікі, якія атрымліваюць нам дадзеныя. Але яна таксама можа выклікаць падзеі. І гэта дзе рэчы становіцца карысным, таму што падзеі гэта тое, што адбудзецца, калі вы націскаеце на розныя рэчы на ​​сваім сайце. Тут наш код кажу нам дадаць гэтую падзею. Дадайце яго, калі вы адправілі што-то з класа новай задачы. Што ў вас тут селектар CSS. Так што гэта проста выглядае для HTML элемент, які мае клас новую задачу. І, падобна, да гэтай падзеі, як прадставіць. Іншыя мерапрыемствы ўключаюць Націсніце, навядзіце, двойчы пстрыкніце, падобна на тое, што вы атрымліваеце ў нармальным фармаце HTML. Што вы даяце яго тут цяпер функцыя. І вы можаце мець свой Код у гэтай функцыі. Гэтая функцыя, што заканчвае тым, што выклікаецца, калі вы прадставіць гэтую новую задачу. Давайце паглядзім на HTML, каб пераканацца, зразумець, што гэта новая задача. Мы дадалі форму тут з класам новай задачы. І гэта мае ўваход, які прымае тэкст. І гэта тое, дзе мы будзе дадаць нашы новыя задачы. Давайце запусцім Крок чацвёрты ў сайт, каб убачыць, як ён выглядае. Мы можам кінуць First Out у MongoDB мы мелі З нашых папярэдніх Прыклад з кіравання С. І давайце зменім яго ў Чацвёрты крок каталог. Мы будзем запускаць Метэор зноў каб запусціць сервер. І, на жаль, мне прыйшлося Метэор працуе ў іншым тэрмінале. Так што я проста хачу, каб пераканацца, што гэта закрытая. Давайце кінуць гэта і змена часткі чацвёртай, чацвёрты этап. ОК. Зараз наш код Метэор працуе. І вы можаце бачыць, што гэта абнаўленне, без нам нават не трэба абнаўляць старонку. Што змянілася тут цяпер што мы не маем ні адной задачы, але ў нас ёсць форма тут, гэта тэкставае поле, каб дадаць нашы новыя задачы. І мы можам ўвесці нашу задачу тут. Я родам з старонкі HTML. Калі я націскаю Enter, ён атрымаў прадстаўлена. Мы можам паглядзець, што здарылася, як адпаведнасці з кодам JavaScript. Што гэтая функцыя зрабіў ўзяць тэкст з формы, а потым проста называецца tasks.insert, як мы гэта рабілі ў кансолі. Яны таксама вырашылі дадаць дату createdAt. Гэта, як бы вы пазначыць бягучы час. Пасля гэтага, яна ачышчае форму шляхам Пераканайцеся значэнне пустая радок. І тады ён заклікае вярнуцца ілжыва пераканайцеся, што нічога не адбываецца. Калі вы вернецеся ад фальшывага Форма падзея, якое спыняе выкананне. Скажам, форма мае дзеянне, як прадставіць на старонку PHP. Калі вы яшчэ не вярнуўся хлусня, вы вярнуцца праўда. Было б у канчатковым выніку зрабіць гэтую просьбу. Ілжывыя перахапляе яго і спыняе яго прама там. Так што было трохі дэма аб як Метэор працуе, і мы сачыў за падручнік для некаторы час. І вы можаце калі ласка свабодна працягваць гэта рабіць. Ёсць шмат рэсурсаў, і падручнік на самай справе проста вельмі добра пра тлумачачы што адбываецца. Я хачу паказаць вам цяпер, у Некалькі хвілін мы пакінулі, што некаторыя з кулер асаблівасці Метэор, і тое, што некаторыя з больш карысныя пакеты. Адзін з вялікіх рэчаў аб Метэор з'яўляецца тое, што ў вас ёсць сістэма пакетаў. Вы можаце лёгка ўключыць код што многія тысячы распрацоўшчыкаў напісаў па ўсім свеце ў вашым Метэор праекта. Адным з прыкладаў гэтага з'яўляецца тое, што вы маглі б зрабіць на этапе дзевяць ўрока, дзе Вы спрабуеце дадаць ўліковыя запісы на ваш Метэор праекта. Калі ў нас ёсць CS50 PHP Праект, мы б спадзявацца на рамках або наш уласны код, каб зрабіць што мы надзейна апрацоўваць паролі і імёны карыстальнікаў і захоўванне ў базе дадзеных і ўсё гэта. Аказваецца Метэор мае некаторыя пакеты зрабіць гэта за вас, і зрабіць гэта вельмі лёгка. Што мы можам зрабіць, гэта дадаць некалькі пакетаў. Так давайце зробім гэта права цяпер у нашай кансолі. Я збіраюся выйсці з праекта і Прама зараз ўдавацца ў простай-нязробленым. Цяпер, просты Todos з'яўляецца праект, які вы будзе мець пасля таго, як зроблена з крокам 11 або кроку 12, ў канцы гэтага кіраўніцтва. І давайце хутка глядзець на гэта, каб бачыць якія розныя магчымасці ў нас ёсць. Давайце проста пераканайцеся, што ён працуе. Часам гэта займае некаторы час, для абнаўлення, але тут гэта. У нас ёсць магчымасць схаваць поўныя задачы, і мы можам увайдзіце на сайт. І гэта было зроблена з Пакет Метэор. Выдатна. Мы ўжо імя карыстальніка і пароль ўвайдзіце ў сістэму. Але што, калі мы хочам дадаць іншы від аўтарызацыі механізму? Скажам, я хацеў, каб увайсці з маёй Метэор рахунак. Я збіраюся працаваць метэорны дадаць, і гэта гэта сінтаксіс для дадання пакетаў. Я магу сказаць, рахункі і accounts.meteor. Гэта будзе цяпер знайсці ўпакоўка і загрузіць яго. Вы можаце бачыць, што я не маю знайшоў правільнае назву пакета. Такім чынам, як вы даведаліся пра пакеты? Ну ёсць вялікі сайт, зрабіў даступныя па метэора людзей, называецца atmospherejs.com. Atmospherejs, адным словам, кропка ком, гэта выдатны сховішча для знаходжання ўсіх Метэор пакеты ў рэпазітары. Я магу шукаць запісу, а затым ён пакажа мне ўсю неабходную матэрыял, ўсе пакеты з імем ўліковага запісу. Хоць гэта загружае, мы можам паспрабаваць дадаўшы некаторыя іншыя пакеты. Можа быць, пакет Метэор не працуе прама зараз, але я магу дадаць Facebook. Я магу дадаць уліковы запіс, а затым запусціць праект Метэор зноў. Пасля гэтага пачынаецца, давайце паглядзім, што змянілася на сайце. Вы можаце see-- я мог бы павінны абнавіць яго тут. У мяне ёсць кнопка для наладзіць Facebook лагін. І вось, у мяне ёсць усе інструкцыі Метэор падрыхтаваў для вас стварэнне прыкладання Facebook. І вы можаце выкарыстоўваць гэта Інфармацыя дадаваць свае пасведчанні. Як толькі гэта будзе зроблена, вы будзеце мець Facebook Увайсці працы ў вашым дадатку. Я проста хачу, каб атрымаць ідэнтыфікатар прыкладання і сакрэт, каб паказаць вам, як гэта можа працаваць. Вы павінны мець уліковы запіс Facebook выкарыстоўваць Facebook варыянты распрацоўкі. Дазвольце мне хутка знайсці Ключы Метэор, якія неабходныя. У мяне ёсць яшчэ адзін праект Метэор што я збіраюся выкарыстоўваць, і я проста хачу, каб узяць ключы з гэтага файла. І як толькі я знайсці яго, я буду проста быць у стане скапіяваць гэтыя ключы ў маёй Facebook. Дык вось ключ. І гэта ў таямніцы. Вы не павінны быць гэты абмен з людзьмі. А потым вы даеце яму ваша прыкладанне ў сакрэце. І гэта так Facebook ведае, што вы гэта вы. І вы захаваеце канфігурацыю. Я думаю, што ў працэсе я спынілі сваю Метэор дадатак. Так што я проста хачу, каб што ён усё яшчэ там. Добра, давайце пераканаемся, што наша Метэор сервер працуе так, вэб-старонка працуе. Звярніце ўвагу, калі мы перастанем Метэор сервер, старонка ўсё яшчэ там. Яна проста не будзе абнаўляць больш. Сервер Метэор неабходна за тое, каб старонка ў прамым эфіры. ОК, я прадставіў яго, і цяпер Я магу ўвайсці ў сістэму з Facebook. Цяпер гэта проста пытанне маючы поп Facebook да і пакласці ў вашым акаўнце Інфармацыя і рэгістрацыя ў. Пасля таго, як вы зробіце гэта, Facebook можа пілаваць вы яшчэ нейкі бяспекі. Такім чынам, мы проста спыняцца на дасягнутым. Справа ў тым, што, калі вы скончыце з тым, вы будзеце мець Facebook.com Увайсці. Метэор мае кучу Іншыя пакеты, а таксама. Вы можаце ўвайсці з Google+. Вы можаце ўвайсці з GitHub. Вы можаце ўвайсці з Twitter. Ці, калі вы шукаеце, вы знайсці мноства іншых рэчаў, як Meetup, LinkedIn, і Метэор Распрацоўшчык. Так Метэор Распрацоўшчык было Пакет я шукаў. метэор дадаць уліковыя запісы-Метэор-распрацоўніка. У той жа час, я Таксама хачу парэкамендаваць некаторыя іншыя пакеты для вашых праектаў. Гэта можа апынуцца карысным ўключаюць у сябе пакет JQuery. Гэта дазваляе выкарыстоўваць JQuery ў Вашых кліентаў. Вы можаце проста зрабіць гэта з адной лініі, і Метэор будзе пераканацца, што вы ў курсе на JQuery. Я таксама рэкамендую Х'юстан: Admin. Гэта накшталт як PhpMyAdmin выгляд інструмента для вашага MongoDB. Гэта дазваляе рэдагаваць Вашы дадзеныя даволі лёгка без таго, каб ісці да абалонцы Монго, як я зрабіў у пачатку семінара. Так што цяпер, што гэта працуе, давайце запусцім Метэор яшчэ раз і паглядзець, што мы можам зрабіць. Вы заўважылі, што даданне некаторых пакетаў можа мець іх прадставіць некаторыя папярэджання. Вам не трэба будзе турбавацца аб тым, што з Х'юстан. Так што цяпер мы можам мець магчымасць наладзіць Метэор адміністратара. І яны даюць вам напрамкі Калі вы хочаце, каб усталяваць, што. Мы таксама можам зараз перайсці да / Admin. Гэта прыходзіць да вас па Х'юстан пакета. І гэта Метэор інтэрфейс адміністратара. Вы проста стварыць уліковы запіс адміністратара, як гэта. І калі вы абновіце старонку, вы маглі б ёсць некаторыя калекцыі з'яўляецца. Гэта вельмі карысны інструмент, і я настойліва рэкамендую яго. Вы можаце бачыць, што з-за Х'юстан даваў некаторыя памылкі, мы не маем якіх-небудзь калекцыі паказ прама цяпер. Як вы будзе выкарыстоўваць Х'юстан пераканаўшыся, што гэтая функцыя атрымлівае называецца ў вашых простых-нязробленым. Так Х'юстан ня ведаю, што мае задачы. Мы стварылі Монго калекцыя пад назвай задачы. Пойдзем у просты-нязробленым і проста пераканайцеся, што ў JavaScript, мы дадалі задачы нашых калекцый. Цяпер мы выратаваныя, і яны будуюць Дадатак, асвяжае. І давайце паглядзім. Цяпер у нас ёсць некаторыя задачы. І мы можам дадаць некаторыя новыя задачы. Але калі мы хочам, каб дадаваць задачы, давайце рабіць гэта з самага прыкладання. Цяпер мы можам дадаць некаторыя дадзеныя. Прывітанне, гэта задача. Здаецца дзіўным, што мы не бачым якіх-небудзь задач. Мы, магчыма, захочаце праверыць, калі мы атрымалі любой Памылкі тут, або, можа быць, дзе-то ў іншым месцы. Калі мы ідзем у Admin, што здаецца дзіўным. Калі вы цягнеце сховішча пасля гэтага семінара, Я пераканайцеся, што просты Todos працуе з Х'юстан. На жаль, гэта, здаецца, не працаваць у гэты самы момант. Ці ёсць іншыя пытанні? Х'юстан звычайна з'яўляецца інструмент, які працуе вельмі добра. Х'юстан спецыяльна трохі buggier, чым іншыя, але я рэкамендую яго, калі ён працуе. Так. АЎДЫТОРЫЯ: Што вы можаце зрабіць з пакетам Facebook калі карыстальнік рэгіструецца у іх Facebook? Роджэр ZURAWICKI: Пасля таго, як карыстальніка ўвайсці ў сістэму, Вы можаце рабіць званкі ў API Facebook. Шмат што з гэтага ляжыць, хутчэй, у як Facebook адкрывае свой API. Метэор, пераканайцеся, што вы маюць злучэнне. Але ўсё, што пасля таго, як ідзе навучання, як выкарыстоўваць API Facebook. АЎДЫТОРЫЯ: [неразборліва]. Роджэр ZURAWICKI: Добра. Дзякуй вам вялікі за гэта CS50 семінар у Meteor. Калі ў вас ёсць якія-небудзь пытанні, Вы можаце напісаць мне на мой адрас электроннай пошты Ніжэй пералічаныя семінара. І я буду рады адказаць на вашы пытанні. Я таксама буду ў CS50 Hackathon павінны Вам патрэбна дапамога з вашымі Метэор праектаў. Дзякуй за прагляд.