>> Добре, така че ние сме назад, няколко гола за днес,
ние ще вземем, когато бяхме последния път,
Припомняме, че бяхме извършване на тази победа
на свързани с сървърни приложения, супер проста, но с помощта на възел JS
а след това и най-наскоро използвайки изричното докосване AS
и това, което беше изразено JS на аналог на в света на PHP.
Така че изрично е по-близо ...,
така изрично е по същество MBC рамка, която е доста
популярна в възел JS свят,
Bookshelf, които ще видим днес чрез Тим е аналог
от красноречив, който е ORM върху обект връзка Mapper
че всъщност го прави по-лесно за да се избегне ниско ниво SQL код
и всъщност изразяват отношения между различните обекти.
Така че един от най-готините неща, честно
за възел JS е само как лесно да го се поддава
да правите приложения в реално време, неща като чат сървъри
или съобщения сървъри, нищо, че вие, момчета, сега използват
като Google ... G-чат или Google свърталище
или актуализации Facebook статуси или дори Twitter ако сте
на техния уеб страница всичко е нещо реално време
Или на дава илюзия за реално време
и това е всъщност болка в врата да се направи с нещо
като PHP и ми SQL прав какво ще предложи
в понеделник ще бъде средството
от които бихте могли да приложат илюзия на недвижими поведение време
със сървър за чат в PHP, какво ще трябва да направя?
Алис изпраща съобщение, хитове въведете къде отиде?
Да.
>> [Раздел безшумен]
>> В база данни и след това какво прави браузъра Боб имат
да направя, за да видите всъщност какво Alice е казал, нали?
>> [Раздел безшумен]
Дръжте >> избирателните базата данни, Добре, така че един Аякс поискване има
да уволни всеки втори, на всеки няколко секунди или ние говорихме за кратко
но не разгледаме един пример за нещо, наречено дълго избирателните,
някой да припомни как
този механизъм ... на високо ниво работи?
>> [Раздел безшумен]
>> Точно така, да, така браузър все още прави Ajax запитване
към сървър, на Foo точка PHP но Foo точка PHP просто изглежда
да се мотае, че по същество той седи в линия, докато за най-много
като 30 секунди и обикновено само веднъж на Foo точка PHP файл
осъзнава, о, има нов ред
в базата данни прави тя всъщност отговори
с HTTP отговор.
Така че мисля, че това може в противен случай се мотае сървъра
и го прави до известна степен
но това означава, че има много по-малко режийни
защото не се нуждаем от нова TCP връзка, нов HTP връзка
действително да поиска данни от сървъра.
Но възел JS идва с много популярната библиотека, наречена гнездо
дот IO, които бихте могли да никога не са използвали е построена на върха
на технология, наречена Мрежата гнездо, което е налично
в най-модерните браузъри и какво гнездо Йо прави е позволите
да се създадат по същество постоянна връзка
между браузър и сървър това е много ниски режийни
Така че не е задължително имат едни и същи въпроси, мащабиране
че може да, ако сте постоянно удря на сървъра
в света на PHP и SQL ми и други подобни.
Дори и за по-стари браузъри
които не поддържат уеб гнездо тази библиотека гнездо точка IO може
падне обратно на мига изпълнение на контакти
и контакти е в мрежа нещо от CS143 например.
Или дори може да падне обратно на дълга Самата избирателна така те прилагат
същия вид работа
наоколо за действително издържа илюзията за тази връзка.
Така гнездо [недоловим] IO и това е под формата
на Java скрипт библиотека, по същество, ако го използвате
под формата на JS възел заявление, което не само да инсталирате
го като пакет с помощта на нещо като NPM които ние използвахме в понеделник
и или можете също така да включва съблекат тагове в HTML файл във вашата
която казва използвайте страна на клиента библиотека.
Така че има две половини на тя и какво сме направили тук
в четвъртата итерация на последователност в понеделник
примери е следното.
Така че този файл структура е напомня на един много общ набор
за изразените JS и за щастие това е начин по-прости
от lervo [фонетично] беше, спомням, когато зададете
нагоре lervo имаш огромен гаден зареже на един куп файлове,
продавач директории, папките и много голяма тежест в сравнение с тази.
Сега в справедливостта сме жилки далеч неща, които е доста много
отвличане на вниманието, но всички сочни неща е наистина
в модули възел.
Само да ви даде вкус, ако се вгледаме
в модули възел има два модула или библиотеки
че сте изтеглили, това ще бъде еквивалентен
на директорията продавач, един се нарича Express, който е
като larevel но в възел
и гнездо СЪЮЗ едно току-що споменах.
Така че тези, които съществуват, така че ние можем да направете следното, ако отворя
до да речем индекс точка HTML, нека първо погледнем в HTML,
това ще се композира това тяло, моята супер,
супер просто чат сървър.
Така че има очевидно ул. с уникална идея на съобщения
и това е, когато един Li в даден момент,
всички незабавни съобщения са ще се появи между Alice
и Боб и тогава там е проста форма с текстово поле
и бутон за подаване от които Alice
или Bob може действително съобщение помежду си.
Така че нетният ефект, ако Аз ръководя тази молба
чрез правене възел пространство ап точка JS, ако аз спра няколко
на прозорци на браузъра е, че Алис може да е отдясно,
Боб може да бъде на лявата и просто
да е ясно, че няма магия тук имам един прозорец
в инкогнито, така че няма споделяне на бисквитки или нищо
по този начин, те са две различни потребители.
Аз трябва да бъде в състояние да имат Alice поздрави Bob, кликнете представят
и сега виждате в ляво това послание на Алис беше изпратен
и почти мигновено отдясно.
Не избирателните привидно участва, Боб получи същото съобщение.
Сега Боб казва кажа здрасти на Алис ще видите обратния ефект.
Така че това, което наистина се случва, как много код ще трябва да напишете
за прилагане на настоящия сървър за лафче
които сега можете да се екстраполира психически, че всеки
в тази стая, ако това не са били на моя [недоловим]
но на Foo дот ком можехме всички започвате да чатите мигновено
с всяка друга.
Така че за какво става дума и преди да изчистите този екран това е тази
е просто гнездо IO бъдеш малко шумна, това е просто печат
от информацията за грешки на екрана,
там наистина нищо иначе става там.
Така че нека да се отвори ап дот JS, така че както и преди, че имаме няколко неща
в началото на файла.
А куп изисквания, така че те са като библиотеки
или изострят улики или да изиска onces каквото и мисловен модел ви
искам да имам и просто да набележи FS се използва
за какъв вид функционалност?
Така файлове система, така че четете файлове потенциално и подобни неща
и аз използвам това в едно поставете, както ще видите,
изричното разбира се е това рамка, която ние използваме,
това не е строго необходимо можехме
като в понеделник се създаде напълно нашия собствен HTTP сървър от нулата
чрез правене създаде сървър и всички от този вид на код от преди
но както ще видим това прави нещата малко по-лесно
защото всичко, което трябва да направите, е да 3-та линия тук конкретни примери
и изрази обект, ще се обадя това приложение, до известна степен произволно,
Тогава аз ще кажа на приложението да слушате на произволно порт 1337,
които биха могли да бъдат 80 от конвенцията
и след това най-накрая имам нов Онлайн днес, която се казва
да изиска от контакта IO библиотека и след това
от този подход би верига тази точка оператор Аз съм просто
наричайки урок слушам, че е по същество казва контакта
IO библиотека също слушам, че една и съща сървърна
или уеб сокет връзки.
И сега какво, така че това, което е този начин тези четири линии
на код тук, които трябва да изглежда напомня на larevel,
какво изобразява това?
>> [Раздел безшумен]
>> Това е ... маршрут, просто маршрут, така че в ап дот JS,
известен още като сървъра дот JS зависимост върху това, което хората искат да го наричат
в техните собствени приложения имате конвенция
за правене на определяне на вашите маршрути,
ап точка GET означава винаги, когато можете да получите искане за GET да отидете
да буквално за наклонена черта давай напред и се обадете тази анонимна функция
и анонимната функция в този случай отнема по изискване
или искане и отговор, потенциално някои други неща
но минимално тези две.
Искането ви дава достъп за неща като HTTP параметри
и хедъри и други сочни неща
и след това реакцията е механизмът
чрез които можете да отговор на потребителя.
Така че това е супер проста дори макар и не видяхме съвсем
същия код за последен път, аз съм използване на модулите на файловата система,
създадете четене метод поток които по същество прави това,
създавате поток за четене, които означава по същество започне показно
нагоре байтове от индекса точка HTML толкова ефикасно, колкото можете
без непременно да чака до вашия прочетете целия файл
и като го направиш тръба тях буквално
във вертикалната лента смисъл ако сте доволни
с командния ред на Linux,
го прибирайте на отговора на обект.
Така че там са два примера свързани с потоци в понеделник,
ние само погледна един но Вие сте добре дошли да погледнем назад
в поток о и поток 1.
Stream 1 ... 0 направил нещо подобно на това,
поток 1 направил нещо почти точно по този начин,
това е просто един хлъзгав един лайнер каже сортиране
на сърбам нещо тук и след това започнете да го изпратите тук
в същото време без прави масово се съгласявате
и след масивен полето,
този подход е обикновено по-ефективно.
Така че това е вид на стари неща дори и да е нов в понеделник,
всичко това е необходимо, за да приложат сървър за лафче
с възел JS и повече специално гнездо Дот IO.
Е, как става това, нека да го движите нагоре малко,
така че Йо е само една променлива , който се отнася
да WE на модул изисква по-рано,
дот гнездо е просто имот вътре в него
че ми дава гнездо свързаната функционалност
, е общ метод, се отнася до това, което общо понятие?
Едно събитие така нататък известен още като слушате в някои библиотеки Това просто означава,
чуха това събитие който се нарича връзка
и сега вие знаете това само от погледнете в документацията,
всеки, който пише в библиотеката определено събитие, наречено
връзка, която прави това, което си мисля,
когато Алис или Bob свързва.
Давай напред и да наричаме това анонимна функция Вземете късата
в един аргумент на клиента което е очевидно някаква
на обект, който представлява Връзка на Алис
или връзка на Боб или Чарли или някой друг
и сега правим следното.
Ще кажем на клиента след той или тя е свързана
да слушате специално
за съобщение, че е напълно произволно нарича съобщение
дебелото черво клиент.
Това е нещо, което Tim и Аз дойдох с, тя може да бъде Foo
или бар, това е само част уникален низ, който ни трябваше
да вземе решение като разработчиците.
Всеки път, когато Алис или Bob чува
този случай настоящата анонимен функция трябва да се нарича
и на данните, съдържание на Алис
или съобщение на Боб трябва да бъде премина в това събитие манипулатор
и сега какво трябва да клиент се справят добре можете вид
прочети това доста интуитивно клиентът трябва да излъчва,
иначе известни като излъчват съобщение наречен метод на сървъра
като по този начин означаваше това съобщение идва от сървъра не
от браузъра и какво ще бъде, че съобщение,
това е очевидно полезния товар от каквото дойде от клиентите
и ние просто ще произволно го наричат ​​съобщение.
Така че много от това е произволно
чрез разумен именуване конвенции, Тим и аз дойдох
с, най-вече Tim и тогава ние просто се създава в крайна сметка
чат сървър, който прави това, което, когато Алис изпраща съобщение
и хитове влизат какво събитие очевидно получава уволнен,
само за да обобщим.
Alice видове съобщение Хитове въведете, съобщение клиент е уволнен,
този код чува, че и сега сървъра излъчва какво,
какъв е крайният резултат на това наистина?
Алис изпраща съобщението сега сървъра го препредава
ефективно за всички, с изключение за Алис, защо всички, с изключение
за Алис, ако просто погледнете
на клиента документация дот предаването точка призная,
буквално прави това, излъчва съобщението
за всички, с изключение на клиент, който ви е пратил
че най-новото съобщение.
Така че това е защо само го види веднъж от всяка страна,
не виждате както и Alice Bob получавам съобщение на Алис.
Така че това е, това е трансферна агент
ако ще това е просто като в съобщенията
и ги повторното излъчване навън
и това е забележително мащабируема Искам да кажа, дори
със супер проста сървър и няколко линии
код, който със сигурност може да справят стотици ако не и хиляди
едновременни прости съобщения върви напред и назад по този начин
и просто да си представим сложността сега за това в PHD
или Larevel или моя SQL и колко код, който ще трябва
да пиша, за да се действително се постигне това.
Сега в тази справедливост не е устойчиво полето
ако сървърът върви надолу ние губим цялата история
така че не е съвсем перфектни превод, но това е
че право напред.
Нека да разгледаме сценария Java код ние прескочи по-рано,
това е Алис и Клиент на Боб,
на уеб страницата, която използват сега нека да погледнем тук за момент.
Има малко повече код
но това е доста много просто Jquery тук толкова известие
че в уеб страницата че извадих
до преди малко ние включва библиотеката JQuery,
гнездото IO библиотека и като настрана забележите разликата
тук, наклонена черта черта на началото на пътя
като това означава, какво по-точно,
където е Jquery точка JS за това какво сървър?
Да.
>> [Раздел безшумен]
>> Това е в интернет да буквално нарича код дот Jquery
дот ком така че защо да наклонена черта, наклонена черта, защо не просто една наклонена черта,
където е HTTP или на дебелото черво, какво означава като цяло се
ако се намали наклонена черта в началото на URL адрес?
Това е действително полезно.
Добре, така това, което е очевидно липсва HTTP сега, ако разсъждаваме
чрез тази логично, обикновено не е нужно
да спомена имена сървъри полето
като, ако просто използвайте наклонена черта Jquery точка JS какво се приема
от браузъра?
Това, че файлът е на една и съща сървър, така че да продължи сортиране
на логика, ако не кажа това какъв протокол каква е
браузър предположи, същия протокол, така ако някога сте посетили уеб сайтове
че ви даде грешка заедно линиите на несигурно съдържание
На тази страница е, защото някой е трудно кодирани с HTTP
дебелото черво наклонена черта черта URL за скрипт файл Java изображение или
или CSS файл или нещо подобно в изходния код на страницата
но самата страница в браузъри URL е HTTP ите.
Така че това е само фантазия малко начин
на казвам, че не знам какво протокола е
че тези крайни потребители възнамерявате да използвате
но просто се уверете, че мачове, така че хром
и други браузъри Не крещи на потребителя.
Единственият улов, който е на Jquery хора са по-добре определени
до HTTPS на техния сървър.
Така че те са всъщност Списък на 443.
Добре междувременно тази един тук, това е вид
на подвеждаща наклонена черта гнездо IO подсказва
че има една директория, наречена гнездо дот IO на моя сървър
но там не е, ако ние мушкам
около там е указател възел модула
но няма нищо публично за това,
когато ние конфигуриран гнездо IO да слушате на същите пристанища,
1337 по същество, че библиотека че някой друг е написал е ще
някак да въведете някакъв код в среда възел JS парфюми
и просто да слушате за този път.
Тази библиотека има само конфигуриран маршрут за тази цел,
това не е истински директория.
Това би било в стандартно местоположение.
Добре, така че сега интересното част,
така че, когато документът е готова, както е посочено
от тази JQuery изграждане, първо аз ще отида напред
и се свържете с муфа,
какво гнездо само от ... да го съхранявате просто отивам за да се свържете
да наклонена черта, че е когато потребителят е
Аз съм запазил например обикновено просто щяхме да се свържете
да точно същото URL адреса на че потребител е посетил тогава аз отивам
да направите следното, аз отивам кажете браузъра на Алис или Боб
да се вслушайте се във съобщение от сървъра.
Отново това може да е Фу
или бар всеки път, когато чуете съобщение
от нея данни на сървъра повикване и след това направете този код JQuery
което аз съм се познае, повечето, ако не всеки е запознат
с тези дни, но по същество една игла точка списък
към съществуващата UL които се нарича съобщения
който буквално казва независимо от полезния товар е
на чат съобщение, последвано от тире, последвано от получаване,
последвано от пространство и след това време за обновяване и затова
да бъде ясно, ако се върнем
за това вие получавате тези допълнителни куршуми отново и отново
и отново с дата пъти.
В същото време, ако се вгледаме тук ние просто трябва
да се справи с подаването на формуляра така че е получаването
на незабавно съобщение, тук е изпращането и това е нещо
на несвързани с възел JS, слушайте до формите представят събитие.
Когато това се случва предотврати по подразбиране, това просто означава, не го представя
към сървъра в обичайните начин, се презарежда цялата страница,
искаме да направим всичко това чрез Аякс.
Ето само някои Jquery кодове
да се получи в действителност на входа чийто тип е съобщение,
чието име е съобщение давай напред
и да е стойност След това отидете напред
и ако действително има съобщение, ако Alice и Bob
или Боб всъщност някои видове никой 0 брой клавиши излъчват
на контакта съобщение нарича съобщение, че клиент с полезен товар
и след това тук долу това е , което го прави зелено, за разлика
до червено, ние просто изход страна на уреда [недоловим].
Така че, но всички е Това е само създаде,
реалния новите неща бих твърдят, е само тези три
или пет реда код тук и такива намеци от силата
възел на JS и с него тази библиотека.
Така че нека хвърлим един бърз погледнете експресни дот JS,
така че това, което аз ще се опитам да направя в оставащото двойката
на минута тук се създаде малцина идея, няколко техники
че след това ще отнеме няколко минутна почивка, Тим ще създаде
и тогава ще се потопите още по-дълбоко
за по-интересна изразят кандидатстване и също
до рафта с книги, библиотеката МТВ всъщност е написал
за общността на отворения код
които ни дава красноречив светлина функционалност с моя SQL
и транзакции и други подобни функции и той също ще се потопите
в малко по-дълбоко към език Java самия скрипт,
как му обект или не-класа Моделът работи по друг начин знае
като модел, прототип, още малко, че да дойде.
Така че нека да разгледаме две последно приложения тук, сървър пет
и сървъра 6, които са всички сортиране на подобни по дух,
те не са чат сървъри но те използват Express.
Така че нека да разгледаме най- какво всъщност прави,
Отивам да вървим напред и отворен ... Отивам да стартирате тази ап
с възел ап JS, аз отивам да се върнете към браузъра си и се презарежда
и това е очевидно всичко това на сървъра се прави,
това е супер проста сървъра това е очевидно за търсене
на двигателя, така че ако пиша в Foo и представя, няма намерени резултати
за Foo, аз не се придвижва към изпълнение на сложни
задния край, всичко, което се случва
да направите, е ехо, без значение какво въвеждате никакви резултати за Foo,
няма резултати за бар И така, как да го направим
защото има няколко парчета, едно,
явно е че някои входове са предвидени
на не сървъра Larevel разбира се, но възел JS сега
така че ние трябва по някакъв начин да получите в този параметър Q,
ние ясно правиш някакъв изглед от тук,
ние сме прави оглед така може би има възможност
за шаблони или променлива interprelation [фонетично]
така че нека да разгледаме в следното.
В ап JS за този конкретен сървъра това е всичко, което имаме.
One ние изискваме изразя себе си два модула път
които просто прави някои полезни неща
като се присъедини струни заедно и така нататък за мен,
Аз слушам на порт 1337 и сега това е ново, така се оказва
, че изрично като Larevel поддържа различни включете добавки
и технологии и други неща и едно
на технологиите, които ви да включите е изглед на двигателя
което просто означава, какво темплейт двигател искаш да се използва,
Larevel имал собствен нещо, но можете да включите
в различни неща, различен прасковени P рамки имат
различни начини на шаблони, EJS е просто общ
и доста проста двигател че просто нека да правим неща,
като фигурните скоби, че сте имали в Larevels синтаксис
за заместване на променливи,
това е малко по-различна синтактично е всичко.
Така че сега там е това нещо, наречено средна фаянс така както ще видите
в собствения си екипи възел проект средна фаянс е просто вид на код
или библиотеки, които ви инжектират
в [недоловим] отговор жизнен цикъл на дадено заявление,
С други думи тези две линии се казва изрично
да се направят някои допълнителни работа между времето получава искане
и между времето изпраща това искане до моя собствен маршрут,
кода си, че вие ​​сте написали.
Така че, по-специално тази линия тук използвате изрична точка статичен и всички
на тази сложност това просто означава, че ако те видя искане
който идва в за статичен файл като Foo точка jif или Foo точка CSS
или Foo точка, така че не е JS динамично генерирани маршрут,
отидете напред и да приеме, че тя живее в обществения поддиректорията,
това е всичко, което прави.
Тя е нещо като картографиране в Larevel, всичко за вашия уеб
или вашия публичен указател по-скоро в Larevel.
Това следващия ред е просто Казваш, че искаш да използвате маршрути,
Искам да използвам неща като ап Дот получите
които видяхме преди малко и ще видим само за секунда сега.
Така че ап дот получите средства слушам за този маршрут,
наклонена черта, когато вие получавате го наричат ​​това анонимна функция, която взима
в искане и отговор и сега просто
като Larevel имате начин за изобразяване на шаблон,
отговор Дот направи, цитирам цитата индекс,
направи е шаблон нарича индекс,
това е тя така че нека да спре, че конци само за миг поглед
на съдържанието на Изгледи директория
и да забележите това също е супер просто за сега,
Има индекси дот EJS и търсене дот EJS,
Аз очевидно искам първо
защото това е едно просто уморен, за да направят и ще видим
в гледка индекси дот EJS Най всъщност изцяло HTML
в момента, има всъщност не темплейт става.
Така че технически не е направил дори трябва да го наричаме EJS,
Нямам нужда от тази функционалност но аз го държат еднакво,
, така че да е, това е, което ми дава, че супер проста форма.
Така че има само един път, ако погледнем тук съм казвал
че това е, което се занимава с наклонена черта търсене, така че действителното вид
на Google като манипулатор за на Формуляр за участие, когато получите
този път наричаме това анонимна функция
и да направи шаблона нарича търсене
и това е втората аргумент предполага, че означава.
Той прилича на JSON обект на видове или Java скрипт обект.
Каква е ролята на този вторият аргумент вероятно?
>> [Раздел безшумен]
>> Действителната заявката, че потребителското въвели в очевидно живее
в искането заявка точка, заявка отнасящи се до всичко
след точката на въпросителен знак Q, която е произволно име
че аз го дадох само като Google
и междувременно р дебелото черво е просто казвайки премине в шаблона,
търсене дот EJS, а ключ на Q и стойност
на каквото р действителната стойност е била.
Така че, който оставя само един файл от интерес за мнения,
търсене дот EJS I съхраняват тази супер проста прекалено,
Това е най-вече просто HTML изключение за едно малко забележителна линия
който е този синтаксис тук която прилича на куп
на различни шаблони двигатели това просто означава, щепсел
в стойността на р и да я направи смела.
Така че няма действителен търсене функционалност, но го прави вид
на подскажете как бихте структурира скелет
на заявление по този начин.
Междувременно ... всъщност аз може да покаже едно друго нещо,
забележите, че аз нямам някаква HTML се тук за CSS файлове
и Java Script файлове, няма нищо в тези файлове
в момента, но забележите, че там е публичен указател
както казах по-рано за статични файлове, така че ако отида
там има моя CSS директорията,
ако отида там Има стилове са разпръснати CSS
И няма съдържание там
но това е, как бихте има публични достъпни файлове.
Добре нека да разгледаме в един друг вариант тук
и след това ще се въведе една идея и почивка.
Това е сървър 6 последната, така това е почти идентични с изключение
за последните две линии който изглежда така.
Така че всъщност има трета линия, която е различна
но аз съм скрит ... така че ме остави назад леко нагоре, така ли някой иска
да предложи какво става тук от гледна точка на лаик
или техническа гледна точка това, което е различна за тази версия
по отношение на тези линии в топ възли.
Какво имам вероятно прави тук и защо?
Да, Шарън.
>> [Раздел безшумен]
>> Да изглежда сякаш съм преместен индекс и търсене
така отделна пряко или нещо, Аз съм ги заложен от
и това е така, че много прилича в Larevel бихте могли да поставите всички
на вашата логика контролер във вътрешността на маршрутите са разпръснати PHP
с анонимни функции отново и отново
но този файл, разбира се може да стане доста масивна
така че в маршрутите точка, PHP, което повечето
от вас са правили е, която сте посочили името
на клас контролер или дори името на метод
че трябва да се нарича
така че една и съща идея тук дори че синтаксиса е малко
различен, така тук предизвестие
че имам очевидно изпълнява собствените ми JS възел
модул и модул е ​​просто Java скрипт файл, който се придържа
по същество една конвенция че ние ще видим само за миг.
Така че приемете, че всички ми функционалност за индекса
и за търсене са очевидно е поставено в тази директория
и сега се обаждам, че цялата модул или пакет или библиотека,
каквото си искате да мисля за него като,
като маршрути променлива наречен маршрути.
Така че очевидно там маршрути индекс точка е метод, наречен
индекс и очевидно има друг метод, наречен търсене
в тази маршрути модули или библиотека
и аз просто го маршрутизиране просто така, че аз не слагам всички
на моя анонимен код във вътрешността на моя ап файл.
Така че нека да отидат в маршрутите забелязвате Има само индекси дот JS
и ако аз гледам тук това е Конвенцията имах предвид по-рано
така че това е доста произволна но това е Конвенцията на възел.
Всеки път, когато се прилагат свой собствен възел JS библиотека,
известен още като модула, който по същество да напишете скрипт Java код, който
Искам в този файл, той ще бъде много чисто пясък опаковка
така че всички вие, променливи изберат да не ще се сблъскат
с библиотека на някой друг, променливи или методи или нищо
като това, но нищо искате да изложите
към външния свят, ала по- публичния метод в Java скрипт
или PHP или други езици , което трябва да цоп вътре
на глобален обект, че автор на възел, наречен износа.
Така че по този износ Дот индекс съм излагането на потребителите
на този модул на метод, наречен индекс, който съпоставя с тази функция
така че е анонимен отдясно
но аз съм действително го дава име на лявата страна
и да го изнася в света
така че можете да се обадите точков индекс или дот търсене.
Така че, за да бъде ясно, ако имах и нещо като функция Foo
тук, че е направил нещо
тази функция ще абсолютно започне да функционира,
то може да се нарече в този файл, но никой
във външния свят студена някога наричаме Foo
защото не е бил изнесен по пътя на тази точкова нотация.
Така че това е всичко, което се случва,
всичко е добре назовем разстояние за вас.
Така крайният резултат, ако го направя възел на приложение и се презарежда страницата е
че ако аз сега търсите
за бар ... функционално тези приложения са едни и същи
но това е просто нещо като стъпка към по-чисто изпълнение,
Със сигурност, когато започнете писане на повече и по-код
и това е всичко, това са.
Очевидно не особено сложни или сложни
но по същество отправна точка
за това, което ще ви бъде първият възел JS ап.
Това, което ние ще направим вероятно по-късно тази седмица или този уикенд
като сте довършителни въз PHP приложения ще следват
с доста проста заявление за тима да се гмуркат
в подобен дух, за да топлото упражнение за PHP
който основава на средата проучване семестър,
хора го смятат за полезна става чрез упражняване
за правене на нещо доста просто
но доста се ръководи преди да всъщност справяне нещо повече
на собствения си, така че ние ще последващи действия с това
и по същество ще бъде поради една седмица и половина
от сега се припокриват леко С PHP умишлено.
Всякакви въпроси, а след това върху изразя, на сокет IO
или объркване оставащото от понеделник може би.
Добре, така че се надяваме, един от Възприемането на пътища до този момент е
че има за някои от тях неща, със сигурност е много по-малко
режийни, отколкото може да са били използвани за.
Така че нека да се въведе една последна идея,
така че много често срещана програмиране парадигма
в Java скрипт, който е всъщност присъства в Jquery
в последните версии, така може да се наложи виждал тази техника
преди, но тя също е доста често при възел JS свят,
това е обща, в Тим собствена библиотека Bookshelf
така че ние ще преразгледа този в един по-конкретен пример
в един миг е решение да се кодира по този начин,
това е представител на код видяхме в понеделник, така че четете файл
в този контекст не е истински метод е сходен по дух
да FS точка чете файл, но предположи, че това е само някои направи
до метод, който прави нещо много подобно.
Така че ние се блъсна в няколко въпроси в понеделник като цяло
И така, какво е нещо ... защо е този хлъзгав наклон,
това се обади на парадигмата на програмиране Java скрипт
и се обади на парадигмата Имам предвид тази техника
където не се върне стойности веднага
защото това могъщество блокира сървъра
от правиш нещо друго, което е полезен, можете вместо обадя
подобно на звънците на Shake Shack, когато сте готови
да премине обратно отговор като аргумент.
Това е хлъзгав наклон
където той много бързо става досадно защо?
Да.
>> [Раздел безшумен]
>> Да, минимално става вид нечетлив полето
ако имате всичко това обаждане гръб и ако сте се придържат
за добър стил става все по- доста масово разчленена
с течение на времето и случай аз посоча това Например, ако сте нещо като обезмаслено
през него се означава просто да отворите файл JSON и да го отпечатате,
като че това е и все пак ние има около 8 или 10 линии тук
които вече са на сортиране на злобно отстъп,
Имаме опит за улов, който е
Ако не сте запознати е Техниката на обработка на грешки
, която ви позволява да опитате нещо
и ако тя не успее след това го хване надяваме
без целия си програма прекратяване но има
толкова много сложност като теб вид на трябва да мисля, че това чрез
и дай боже да направим няколко друга асинхронно извикване на методи,
Работата е вече Ще бъде тук,
може да мисля, че това е един вид на една глупава естетична но това
защото повикването обратно парадигма е толкова често, най-малко
в родния код възел тази много бързо да стане досаден,
труден за поправяне, вдлъбнатината започва да има значение, така че можете да сортирате
на гонят нещата, това е Просто не е много щастлив начин
на програмиране.
Така че това, което хората са направили
в различни контекст възел сред тях е да се опитате да се опрости това,
OS например обещания е друг начин на мислене
за писането на асинхронен код че визуално се превръща нещо
като версия 1 в тази версия 2.
Аз твърдя, и това е отново просто някак смесва
между действителната код и псевдо код, това е представител
на начина, по който ще приведе отново в действие че точно същото нещо,
отворите файл JSON, тя прави разбор и да го отпечатате
, като се използва нещо наречен обещания
и ключовата синтактична детайл е
че има верижното става тук.
Забележете, че само запетаята
в цяла ... всъщност добре нека да ... Аз не искам да се въведе в заблуждение.
Това не е строго необходимо Но нека бъдем последователни,
забележите, че запетаята който се отнася до откриването
на цялата тази декларация е чак тук.
Така че, докато съм форматирал този ... вид изглежда
като три изявления, три отчети, които можете да видите
в Java или други езици които имат опит и улов
и обработка на изключения по-общо.
Забележете, че аз просто верига стойността връщане на всеки
на тези методи заедно.
Така че това, което се случва, да се чете файл ако това е метод, който съществува
очевидно се опитва да се чете този файл,
дот след това така че след това е много общо име, дадено в света
на обещания за метод, който трябва да се изпълни
ако предходната нещо успешно.
Така че това е нещо като успехът манипулатор, така че след това JSON точка разбор,
добре JSON точка разбор е само метод
в глобалната JSON библиотеката и то очевидно се придържа
в този случай обещание модел
така че ние казваме, че може просто Предполагам, че този човек повикване
и ако той успее след това наричаме този човек и след това
ако това е действително изпълнява просто утеши влезете данните
под въпрос.
Е, къде е грешката боравене, забележите съм сортиране
на много сляпо пристъпи изключите тази издатина
и току що се обади тази метод и след това метод
без изобщо проверка за проблеми.
Ами къде са тези проблем вероятно работи ... в тези
кеш изявления толкова различен библиотеки използват различни
конвенции, но и в този случай след това е нещо
на успех манипулатор, кеша е нещо като водачът грешка
и тъй като ние не сме разбити тази верига ние просто да продължите да използвате
точкова нотация, за да се свържат заедно оригиналния метод позоваването
от четене на файлове и функцията Призив някакви грешки сортиране
на балон пътя си чрез веригата
докато те са всъщност борави което е по-чист начин, отколкото се опитва
да се справят с него всеки проклет стъпка от пътя
така, че кодът много бързо става нереални данни.
В този случай ние сме твърдейки, че ние се опитваме
да улови това, което се нарича синтаксис грешка, че е по същество
подклас на по-общ грешка и ако това се случи иск
че е невалиден JSON друго ако това е по-общ грешка
че ние не очаквахме просто по-общо казват, не могат
прочетете файл.
Сега това е просто означаваше за да бъде представителен код
но ако сте програмирали в сурова Java скрипт или в Java
или други езици, това е процесуално код по същество,
това е по традиция опитайте изявление улов
и това е естетически и функционалността, която обещава
или да се опитва да ви даде , чрез която можете да мислите за него
като просто писмено пробвам и след това хванете и след това хвана не се налага
да се притеснявате при всеки единствен възможен момент
където грешката може се справя ... случи,
можете да го изпълни изцяло в края, колкото е необходимо на един малък блок
на код, а вие дори може да прави разлика между грешки
колкото можете в този случай тук.
Така че номенклатурата, че ще виж в литературата може би
като Tim представя някои от тези неща е твърде
, че в идеалния случай искате обещава да разреши
и решаването обещание средства че най-накрая се върне така да се каже
но не по традиционния начин на стойност, така че тя или е загубила
за не успее по същество.
Добре някакви въпроси след това, не е предназначен да бъде достатъчно
за излагане на обещания но само един мисловен модел
за код ще започне да се види.