>> Значи, со тоа се рече,
само вид на едноставни Вовед во прототипови
и објектот да го вклучите Javascript модел.
Ние нема да се префрлат брзини малку да се зборува
за повеќе JavaScript на серверот и Публикации Библиотека
и врската Knex библиотека.
Значи, можете да всушност само -
ако барате Bookshelf.js тоа треба да биде прилично лесно
да се најде, треба да биде прв резултат на тоа, и Публикации
како Дејвид споменавме само дава многу структура
околу вклучите Javascript-објекти и работат со нив relationally
во релациони бази на податоци.
Значи, многу слични карактеристики кој е всушност во голема мера инспириран
од ОРМ Laravel како и Backbone.js,
кој е пред крајот MVC библиотека која ви овозможува
да структура вашиот код, слични на она што јас го покажува
со примери на прототипови, каде што може да се -
наместо само произволно фрлање класи
на вашите ставови тука и таму.
Тоа ви дава модели и збирки на оние модели
кои би требало да дејствува како вид на единечна точка на вистината
за податоци за вашата апликација.
А потоа можете да ги слушате, како и оние модели промени, велиш, во ред,
повторно го претставиме овој шаблон тука и овој овде
а не само додадете класа тука, додадете класа таму и вид на собереш
на селектори и направи пајакова мрежа на jQuery код.
Тој им дава повеќе од класа базирана структура на поединечни парчиња,
но важна компонента на таа библиотека е модели
кои имаат слична структура на она што го прават Публикации модели.
Значи, ако сте запознаени со Публикации сте прилично исто така
прилично запознаен со Backbone.js модели,
и јас ќе им препорачаат Гледано во ова.
Значи, некои од главните карактеристики
дека тоа ви дава се само способноста да се постави на податоци за објектот
да се јавите викнам, што се враќа поединечна евиденција
од базата на податоци, создаде односи како слични
на она што се занимаваа во рамките на Laravel
каде што може да се каже пациентот постави рекорд метод
и велат дека ова има освоено рекорд
каде рекорд објект е табелата име здравствена евиденција.
Ајде да видиме.
Има многу - тоа му припаѓа на -
само нешто што сте прилично слични -
прилично запознаен со веќе, но во JavaScript.
А под хауба, за Публикации,
тоа го користи Query Builder наречен Knex.js.
Значи, тоа е Knex, knexjs.org.
Тоа е повикување на играчка, ако некој е некогаш играл со ова.
Но тоа ви овозможува да - во сличен начин, да jQuery,
можете само вид на се создаде синџир на различни методи
дека сте повикувајќи се на вашиот базата на податоци ред, па можете да -
што започна со кажување Knex и името на табелата.
Така, на пример, Knex корисници, изберете кои колони што сакате,
каде што, и имаат различни, каде што conditionals и може да имаат
И каде или кога, каде што меѓу, каде што не,
сега, одредување на линија.
Можете да наведете различни приклучува помеѓу вашата база на податоци маси
кој Публикации користи интерно да се постави еден вид на магија
околу hasOne, hasMany, belongsTo, belongsToMany.
И така комбинација
на двете ви овозможи да направите прилично многу што сакаш да се користи
во рамките како Laravel во однос
на функционалност работа со бази на податоци.
Значи, ајде да одиме напред и да ги погледне во еден едноставен пример
за Експрес стан кој го прави користењето на овие модели
и збирки на Публикации џез [фонетски].
Значи, јас сум постави само едноставна апликација овде.
Се слеков некои од работите кој беше иницијализацијата Express
и да се движат дека во init директориумот кој го создаде.
Една од убавите работи во врска работа со Експрес како треба
да Laravel е дека постои навистина не многу насилна
на вас conventionalized.
Па можете да креирате директориуми -
тоа не навистина ви даде многу скапо да работат надвор од.
Имаш само еден вид на некои основните поставувања и потоа -
но тоа не му е гајле каде што ги стави.
Вие не треба да имаат Директориум контролер.
Вие не треба да имаат модели директориум, конфиг директориум.
Може да се вид може да се создаде оние што вашиот проект потреби
и да го поставите работите на начин кои го прават смисла најмногу за вас.
Значи наместо сите овој експресен boilerplate
во главниот app.js Јас само рече стан еднаквите бараат иницијализира / Express.
И така во init,
на иницијализацијата папка Јас само се покажат тука,
и ова бара Експрес, повици функцијата подесување, го нарекува -
поставува поглед на моторот, JSON парсерот, сето тоа.
Па сега, ајде да продолжиме надолу.
Па јас сум се бара Се разбира инструктор состанок
и барања модели.
Значи овие се во папката каде што Јас само одлучи за името модели.
Тоа не мора да биде дека начин сепак тоа го прави смисла,
но модели е само прилично заеднички, па јас би го препорачувам.
Но - Па ајде да одиме за курсот.
Мислам дека сум користење - Да, и примери
овде се сите базирани околу курсот модел.
Па да се земе Еден поглед на тоа.
Значи, сега, само на првата линија на овој модел,
Јас сум веќе бара нешто друго.
Значи, ако ќе забележите во јазол ќе треба да се бараат
или си оди за да заврши бара целиот куп
на различни фајлови кои се наоѓаат
во различни места во вашата апликација.
И роднина патеки каде и да сте
во вашиот тековната апликација,
освен ако тоа е највисоко ниво на веќе дефиниран како во го инсталирате
со МПМ како полица или Knex или Express или нешто,
оние кои не се релативни.
Да? Зумирате повеќе?
OK. OK. Значи, сте ќе треба да заврши бара целиот куп
на само различни слики во вашите код, што е добро и лошо.
Во добар начин знаете каде работи се и тоа не е вид
на магијата за тоа што е случува под хауба,
кој навистина може да биде збунувачки
кога ќе имаат многу тешки Јава -
или многу тешки рамка како Laravel, кој вид на вели,
ние ќе се грижи на тоа така да не мора
да се бара сè, но мора
да знаете како сето работи со цел да го користам.
Каде што, во овој случај, тоа е многу јасна како да
каде што сè е, тие се само краевите
до тоа да биде малку повеќе пишување.
Исто како и во страничните Ми се допаѓа да се користи, постои додаток
ако користите слепи текст
каде што може да инсталирам јазол модули помошник и можете да почнете
да напишеш како инструктор и тоа создава релативната патека
до каде сте со онаа кодот датотека, вид на корисни.
Значи, се разбира модел е потребна база тука
а потоа база практикантот бара init / полица
а потоа Публикации, тоа бара на највисоко ниво Публикации
и тогаш тоа го иницијализира со ја иницираната Knex пример,
кој поставува името на клиентот
и врска поставувањата за базата на податоци.
Па јас сум само со користење на едноставни пример на Продолжение Pro, кој -
на MySQL, Јас сум тоа што пристапуваат со Продолжението Про и има само еден вид
на слични база на податоци подесување како што имавме
во првиот примерок апликација со каталог разбира.
Значи, јас во собата ми конекција подесувања тука,
и сите тие се документирани на проектот страница Knex.js
како да подесување овие врски.
Значи, јас сега имаат мојата база модел.
И како што рековме со промена на прототип,
така што може да всушност да се вид на многу да се -
додава многу boilerplate на вашиот код, па конвенција
која е адаптирана од Backbone.js
и сега Bookshelf.js е да го додадете ова прошири метод
како статични сопственост на Вашиот вклучите Javascript-објекти,
што му дава еден вид на речиси класа базирана наследство природата
каде што ако ти се јавам се прошири што може да се постави било
од методите прототип кои би сакале тука
а потоа можете да - било дополнителни статички методи
кои можеби ќе сакате, можете само да ги постави себеси
тука за да можам да го прошири со - така да ако на пример,
повеќе модели се потребни прикаже името и добие името.
Значи, тука, јас сум велејќи дека име за модел
стандардно е она што нејзиното име имотот е поинаку враќање
нема име.
И сега на секој модел кој е -
која се протега оваа база модел, јас Сега имаме метод име на приказ
на прототип синџир некаде.
И ако сакам да ја пребришете Јас само да го постави - формирана што -
getName ќе биде тука.
И ви овозможува да го имитираат класични наследство
во JavaScript, кој може да биде убаво особено за работите
кои се позајмуваат самите се класа врз основа како објект модели.
Па ајде скок назад во примената код.
Па имам пат за само коса црта, само за мојата индекс
а потоа го намали курсеви.
И двете од овие се јавувате методот renderCourses.
Значи, повторно, функции се прва класа и може да се пренесе
како аргументи на методите.
Значи, во овој app.get, Апелирам -
Јас сум поминува renderCourses како аргумент.
И ја даде - или функции може да биде поставување како var -
како што го правев порано var renderCourses еднаква на функција
или тие може да биде само функција renderCourses.
Тоа не дава никаква премногу многу разлика.
Ти всушност може да се она што се нарекуваат името на функцијата
изрази, кои се var renderCourses еднаквите
функција renderCourses.
И, причината дека сакаат да имаат именува функции особено
во јазол е тоа што ви дава почиста -
повеќе читлив стекот.
Значи, ако имате целиот куп
на анонимни функции ќе каже -
кога ќе имаат грешка во вашиот код You'Ll -
нема да знаете која функција тоа е Повикувајќи Вие ќе треба да се погледне
го кодот број и бројот на линијата
и тоа е понекогаш е полесно само визуелно да го анализирам
кога всушност сте имаат имиња
за функции се на страната на серверот.
Значи ова renderCourses, да ја наречеме јазол апликации -
па јас сум слушање на Основни 3000 [фонетски].
И така сето ова го прави во право тука е само добивање на сите
предмети од базата на податоци.
Јас сум дури и не го ограничуваат па тоа го прави огромен број
на редови тоа е враќање.
А со цел да го направите ова,
на курсот модел има е статичен имот
наречен колекција.
И така јас само го нарекуваат - Јас рече создаде нова колекција
за овој курс, и тогаш тоа викнам,
а потоа се врати на курсеви збирка тука во ветувањето.
Па внатрешно, Дејвид во - на Последниот половина научи малку
за ветувања и ветувања се користи многу силно во двете Knex
и Публикации бидејќи тоа помага на -
тоа ви дава способност да имаат еден куп
на различни асинхрони повици и вид на приклучат потоа заедно
или пренесам нешто, а потоа
со тој повик друг асинхрони база на податоци повик
и да се врати на таа вредност и потоа скок на следната потоа
и следната тогаш и тогаш имаат фати на самиот крај да го решите
на имитираат асинхрони обид фати однесување со асинхрони код,
затоа што ти си ја гледаат сега
но тоа е уште потешко еднаш ќе почнете да се справи со неа.
Асинхрони код е само насекаде
во серверот од страна на JavaScript и навистина во многу поголем степен
отколку што сме навикнати да ако сте го направиле вклучите Javascript-
на клиентската страна.
Така што, навистина, навистина помогна да таму.
Но само да ви покажам дебагерот изјава
дека зборувам во јазол инспектор алатки,
Одам да се оди напред и да фрли дебагерот линија тука
во renderCourses функција и да видиме каде што ме води
кога јас - па јазол инспектор може да се инсталира
со тоа НПМ Инсталирајте со G знаме,
што значи Глобал Јазол инспектор.
И тоа ќе го пренесам за НМП и го инсталирате на глобално ниво
за вашите апликации така што само може да го наречеме
од командната линија.
Јас веќе инсталиран па јас ќе одам напред и -
всушност би можеле да имаат да чекаат тоа само ќе ги преземе,
земе две секунди.
И она што јазол инспектор повторно ви овозможува
да направите е да ја имаат оваа глава верзија на дебагерот конзола
дека сте навикнати да кога работат на клиентската страна, и да бидат способни
да се запре, само додадете одреден точки во вашиот код.
Запре извршување и да погледнеме во она што се случува,
кои ќе имаат навистина дојде во рака ако функцијата
како што беа на располагање
кога дебагирање на вашиот PHP код јас сум сигурен.
Па да се земе Еден поглед на тоа.
Па јас само може да се јавите јазол инспектор
и тоа ќе се каже посетите овој URL порт 5858 да започне дебагирање,
тоа е само стандардно за тоа како ќе се стартува.
Значи, јас сум сега доби - има ништо се случува овде
бидејќи јас треба да започне.
Па јазол ќор-сокак [фонетски] на debug знаме, а потоа app.js.
Така што се вели дебагерот слуша на порта 5858,
Експрес серверот слушање на 3000.
Па ние сме добро да отидевме.
Дозволете ми само освежување оваа.
И сега можам да видам на app.js код кој бев само гледајќи во
но тука во конзола.
Па сега, ако јас се обидувам да ја извршите оваа, може да се види, не застане.
Тоа е само чекање, бидејќи неговата целата исполнување на код сега
запре на овој дебагерот линија која јас сум се стави во таму.
И јас сега може сервер -
[Беззвучен Забелешка]
О, да. Што е клучен збор кратенка за да зумирате екран?
Ох постои.
Добив тоа. OK.
[Пауза]
Ох, тоа не гледа [Фонетски] тоа.
Значи, курсеви е навистина голема
бидејќи јас не го правам ограничи клаузула или ништо,
тоа е само преземање на целата база на податоци на курсеви
кои се многу од нив.
И така - кој е предмет
кои, всушност, може да се сруши белешката инспектор пример.
It's - Добро.
Дозволете ми да се направи граница и тогаш можеме да ги разгледаме
кога тоа не е преземање стотици курсеви.
Па, да расчистат со серверот и инспектор
и јас ќе сторам се разбира колекција пребарување граница 20.
Значи, во Публикации, за разлика од Laravel
каде што само може да се јавите ограничи директно или јавете се било
на овие SQL методи кој не го користите
директно на ORM пример.
Во секое време, кој го користите само SQL метод што е предвидено
во Knex, мора да јавете се барањето да го решите
на сместат во барањето синџир.
И ова може да се повика или со функција,
па може да се каже, функција оваа граница 10 или вие го викате
со впишување кои метод што би сакал да го наречам
на Knex пример и потоа која вредност.
Па ние ќе да се направи ограничи 20 а потоа во собата.
Ние всушност не треба дебагерот тука
бидејќи ние само може да постави точка на прекин
и кој го прави полесно.
Во ред е.
Значи, ајде да се постави точка на прекин токму тука и обидете се да ја вчитате.
Погрешна линија.
Токму тука.
[Пауза]
OK. Па тој престана повторно.
Па сега, курсеви е објект со должина од 20
и можеме да видиме сите различни модели дека тоа е Земени
од базата на податоци, токму тука па имам модел објектот
кој има, во внатрешноста на атрибути на имотот
на објектот се сите работи дека тоа е пронајдена во базата на податоци.
Сите настани кои имаат се регистрирани
така можете да се регистрирате различни настани,
на пример, кога модел се брише
или кога таа е Земени се,
можете да наместите различни својства или менување на нештата.
Има многу различни куки и сите тие се документирани
во Bookshelf.js документација која ќе им овозможи на
да се направи вид на нешто дека навистина сакате да го направите
со вашиот модели и колекции.
Можете да - тие се наменети да биде навистина индивидуализира
и навистина лесен за можете да ги прилагодат
на потребите на вашата апликација.
Но, само гледајќи низ овде,
Јас може да се види она што различните курсеви се достапни.
И во овој случај, јас всушност не пренесам
со кои било други податоци друго освен само самите курсеви.
Но во сличен начин да се елоквентниот ОРМ можете да го поставите
до односи, па се разбира припаѓа на многу инструктор.
Значи, ако одам напред и да запре апликација,
Скокни до оваа пренесам повик, можете може да одредите различни опции
дека сакате да помине заедно со него.
А еден од нив е способноста да се вчита поврзани код
со впишување withRelated инструктори тогаш курсеви.
Па ајде да се вратиме и свежо овој овде и да престане повторно.
Па сега, курсеви се противат, ист број на модели,
но сега секој модел има односи хаш
која има инструктори дека тоа е поврзано со.
Значи ова се разбира за пример
кој е курсот 082 има две поврзани инструктор модели.
И веќе може да се види како многу полесно ова е да се најде решение
на визуелно работи со повеќе кога си имаш работа со работи
дека вид на промена на кодот а потоа обидете се повторно во PHP.
Фактот дека може да се само запре извршувањето во целост
и оценка на она што е овде и на - во конзола, -
одзумирате, курсеви е, знаете,
она што локалната опсегот променливи се достапни
и ова е во моментов на светската објект, бидејќи како што ја видов,
освен ако не ти се јавам со специфичниот контекст, тоа не се случува
да имаат нешто релевантно тука.
И тогаш, на - дозволете ми да покажуваат неколку примери
спроведување ветувања.
Така, наместо за правење на овој withRelated инструктори тука сум
ќе одиме напред и да се помести ова да достигне цена, а потоа и курсеви,
Одам да се врати courses.load инструктори.
А потоа - тогаш ти се јавам тогаш.
[Пауза]
Па тогаш во овој момент, на Курсевите треба да биде вчитан
со инструктори, кои е асинхрони акција.
Туку затоа што ние сме го враќа од ветување, на следната вредност
за тогаш е она што овој асинхрони повик се враќа
кој во овој случај товарот е метод во Публикации
кои, всушност, се враќа самиот колекција.
Така, тоа е вчитувањето на инструктори таму
а потоа можете да наведете - ако тоа е само еден имот,
можете да наведете овој како стринг, инаку,
можете да го направите инструктори и барања
како метод - Жал ми е, како низа.
А потоа, ако сакате да се добие навистина фенси и да ги ограничи било
од овие дадени достигнува, можете да го наведете како хаш
со инструктори и тогаш што Дали сакате да се ограничи пребарување на.
Значи, јас би сакал да се вчита сите инструктори на курсевите каде -
па QB за пребарување градител каде што статусот е активен.
И можете да добиете навистина фенси со било
на поврзани пребарувања сакате да се изгради.
Но, само сега за сега, ние ќе да се држиме до само инструктори
и ние сме го врати вредност
па тогаш следниот тогаш треба да имате сите курсеви натоварени
правилно.
И ако имало грешка на секој чекор со тоа, што на снабдување,
тоа ќе скокаат долу за да го фатат.
Па ајде да одиме напред и да ја стартувате таа.
Така секој пат кога - за разлика од PHP, една лоша е
"Бидејќи јазол" е долго трчање процес, вие всушност треба
да се запре процесот на јазол како што обновете го вашиот код,
бидејќи верзијата дека тоа е работи во периодот време е,
верзијата на код кој бил натоварен
кога не започна она што го имате вид
на ажурирани вашиот код со оттогаш.
OK. Ние ќе се постави точка на прекин тука, тука и освежување.
[Пауза]
Ох, јас всушност не освежување оваа страна или
па тоа беше на стариот процес.
Па ве освежи и двете оваа и јазол инспектор.
Па сега можеме да видиме курсеви.
Ако ние само да примерок на еден од овие модели,
можеме да видиме дека односите Објектот е празна, но сега -
и причината што ви е потребно да се постави точка на прекин е, добро,
Јас спомнав дека може да се скок во стекот
и да видиме што знаете, каде што тоа се случува во стан.
Па сега можам да видам што е случува во методот оптоварување,
што сум дефинирани на колекции.
Тоа вид на "Желни носивост односи врз веќе ".
И можете да чекор по чекор и да видиме линија по линија
каде што овој материјал е ќе што е одлично.
Ако имате нешто дека е скршен во вашиот код,
тоа е фрлаше грешка и сте како, навистина сакам
да се види каде тоа се случува.
Но штом ќе наиде на нешто асинхрони, на -
оди на следното функционирам на циклусот на настани
и ќе ја изгуби својата - го изгубите вашето место
во јазол инспектор.
Така што треба да се каже, "Добро, јас еднаш го загуби ова,
што треба да се запре сега во оваа линија повторно. "
Затоа што ако јас се чуваат притискање доле, доле магацинот,
тоа ќе има на крајот само исчезнала ако не го постави ова
линија 22 сини пауза линија.
Па сега, ако јас со нетрпение на курсеви тука,
што треба на врска инструктори
а потоа имаат инструктори ги закачите.
Значи, можете да видите дека се вратив ветување од првиот ветување
и можеш да постојано го направите тоа по ред.
Така различни ветување, ветувам библиотеки,
Јас се користи еден вика славеј што е навистина корисно.
Таа додава многу убаво на овој за менување на асинхрони -
менување јавиме база код во работи
кој работи добро со ветувања.
Но - Жал ми е [нечујни] што Јас требаше да го кажам таму.
Ајде да ги разгледаме иако во -
па да речеме дека постои проблем кога преземање на нешто.
Па морам ова друг пат да се најде наречен разбира проект.
Па ајде да направиме курс 2.
Може ли да добијам - JSON разбира.
И тоа не [нечујни].
[Пауза]
Јас мириса нешто не е во ред тука.
А не на 3000, бев на инспекторот табот Хром.
OK. Па ајде да одиме на се разбира - JSON курс 1.
И ова се враќа само во JSON формат, се разбира натоварени
со некои инструктори.
Но примерот сакав да им даде тука е дека,
Јас правам JSON разбира проект.
И во пренесам параметри, Јас сум специфицирање бараат вистина,
која е една опција која е документирани во Публикации
каде што тоа е велејќи дека: "Ако, Се обидувам и да се најде на овој курс
и тоа не е таму, потоа фрли грешка. "
И дека треба да биде фатен од страна на фати блокира овде долу.
Па ајде да одиме напред и да скокнете назад во јазол инспектор и обидете
и се кршат тоа и да видиме што добивме.
Па ајде постави пауза тука на JSON разбира.
Во ред е.
Јас ќе одам да JSON разбира и Јас само ќе ја стави во некои -
[Пауза]
Тоа може да биде малку незгодно понекогаш кога ќе се обидуваш
да управуваат со кој е освежен
и кои имаат не - ајде да видиме.
Па тоа е повик грешка празни одговор.
[Пауза]
Ајде да фрли дебагерот тука.
Бидејќи за тоа како јазол всушност ја оптимизира
за да го вклучите Javascript траење да биде толку брзо на серверот,
понекогаш јазол дебагерот има некои грешки кога се обидувате
и да го поставите на поминувања динамично а ти всушност не треба
да се користи дебагерот и не на линија-по-линија.
Да видиме дали ова ни добива она што го сакате.
Па јас во собата, app.get JSON разбира проект,
и јас сум во собата ми дебагерот таму
на пленот изјава на дното.
Земи бараат вистина, тоа треба да - сите во право, таму ќе одиме, се скрши.
Значи, сега можам да видам дека тој престана
во оваа конечна фати блок бидејќи withRelated -
или поради тоа што бараат точно утврдени и нема разбира
со проект на овој голем број преку исклучок
кој сега е Emessage.
И секоја грешка во вклучите Javascript- има магацинот сопственост
кој доаѓа заедно со него.
Па тоа е често корисни на пример, со
конзола се одјавите e.stack.
И јас всушност може да се види кога ќе се погоди грешка.
Па јас добиете грешка празни одговор, тоа е пораката
која беше испратена преку Публикации.
Но сега, можам да ги разгледаме на, на повик магацинот и да видиме
дека во Публикации дијалекти SQL модел 83,
овој празен одговор грешка беше фрлен.
И ова е местото каде што рековме, тоа е точка анонимни
затоа што тоа е анонимен функција.
Ако, кои беа на името на функцијата ќе имаат подобар идеи
на која функција, всушност, низ без да мора да одат
во model.js код.
И покрај тоа што е замислена да биде прилично, прилично читлива,
па може да се види дека онлајн.
Она што не го кажуваат мене беше линија 83.
Значи, ако options.require и одговорот не постојат,
тоа сега фрла нова празни одговор грешка.
Така можете да видите многу јасна како тоа работи.
И внатрешно во Публикации,
таму си само целина куп на користење на ветувања.
Па можете да наведете Promise.method
со Bluebird библиотека која го задржува точниот контекст
на овој додека се врати ветување.
И така сум - Јас сум обврзувачки вредноста на овој слични
на она што јас би споменати порано, но со користење на ветувањата
а потоа можам да - тоа е ново.
Тоа може да биде асинхрон или не ако сакам.
А потоа правам некои други работи кои може да
или не може да биде асинхрон и тогаш видови на скокови долу ова.
Па Promise.all е помошник, кој многу популарна библиотеки имаат
каде што може да имаат низа на потенцијално може
или не може да биде ветувања.
И уште еднаш на сите оние кои се завршен, можете да се врати што
и тогаш тоа скокови до следната линија
и можете да видите како тоа навистина flattens од пирамидата
што ќе добиете, на повратен повик пеколот како свој познати
ако правиш сè што со повикувања линија по линија.
Постојат начини да се добие околу тоа, но ветувања се еден
од најдобрите начини според мое мислење
навистина да се чуваат на вашиот код чисти и лесно да се прочита.
Па тоа е само кратко Вовед во вклучите Javascript-
и да Публикации и Knex во целина.
И, ако има било какви прашања, Знам дека е еден тон на материјал
да вид на пробајте и се покрива особено со оглед на јазици,
за разлика од повеќето дека сте запознаени со, па јас само сакав
за да се направи, така што најмалку ако имаш проблеми
со вашиот код, можете вид на да скокнете во -
тоа е она што сакам да направите, е вид на скок во библиотеките
дека јас сум со користење и да видиме Како се структурирани работи.
Има една која ги имав спомнато порано наречена Backbone.js
и всушност тоа е [Нечујни] на клиентската страна
да им помогне даде модел поглед контролер структура
во кодот.
Но тоа всушност има коментари документација извор
кој ви овозможува да вид на се види.
Тоа е навистина добро документирани, она што се случува,
како тоа е јакнење на функционалноста на Ајакс
или настанот функционалност или модели и колекции вид
на објаснување на она што е се случува во процесот.
И ако се разбере основите на вклучите Javascript-
како prototypal наследство и колку функции се користат
и како објекти и вредности и класи и сè.
Тоа го прави многу полесно да се разбере она што се случува
на потенцијално во библиотеки дека сте користење
и дебагирање законик и да бидат во можност да не се удира главата
на ѕидот, бидејќи вие не се разбере како на
различни парчиња се работи, па.