Рудракш МК

20 август 2016 г. · 4 минути четене

Попада в две брилянтни рамки на Node.js

беше доста

Първият ми набег с писане на Javascript от страна на сървъра стартира неизменно с ExpressJS - както вероятно е за всеки, предполагам. Тогава бях ентусиаст на микрорамките; Възхвалях добродетелите на използването на Flask над Django, на писането на Sinatra вместо Rails. Минимализмът ме привлече от естетическа гледна точка, както и от функционална гледна точка. Ако исках да използвам Redis като моя основна бекенд вместо MySQL, Flask ми позволи да го направя. Ако исках да създам прост REST API, без да инсталирам 27 скъпоценни камъка, от които се нуждае Rails, бих могъл да завъртя нещо бързо и чисто със Sinatra. И това е, което Express беше рекламирано като: Sinatra for Node.

Express - и общността на Javascript - и двамата са се развили оттогава. Днес аз лично вече не виждам Express като „Синатра“. По-скоро като нещо, което се намира между подобна на Flask микрорамка и подобен на Django масивен уеб стек. И това вече не е привлекателно. Това е изключително лично наблюдение, което може да не е подкрепено с конкретни факти. Но чувствам, че писането на код е свързано с избора на езици и рамки, които ви карат да се чувствате комфортно. Това е като лингвистичната относителност, по-известна като хипотезата на Сапир-Уорф: структурата на даден език оформя светогледа на говорещия. Мисля, че това може лесно да се разшири до компютърните езици, тъй като те се основават на човешката семантика, и също така мисля, че може да се разшири и до инструменти и стекове и рамки - библиотеките, които използвате, определят как гледате на кода си и какво крайният резултат (и) може да бъде.

Както и да е, стига с отклонението. Замислих се да намеря по-нови Node.js рамки, които бяха малки, оголени, с минимални инструменти. И там Diet.js и Koa наистина, наистина резонираха с мен. Тази публикация е опит да запиша това, което обичам в Diet.js, както и много, много основно въведение за всеки, който се интересува достатъчно, за да играе с него. Следващата част ще говори за Коа, а третата част ще включва някои интересни цифри за тяхното представяне.

Нека първо започнем с диетата. Това е бърза и малка рамка за бързо изграждане на мащабируеми приложения и API. Той се предлага с поддръжка за хостинг на множество приложения на различни домейни, както и чист синтаксис за дефиниране на маршрути и междинен софтуер.

Инсталирането на диета е толкова просто, колкото си мислите:

След като приключим, нека дефинираме бърз сървър:

Това беше доста бързо. Импортираме диетичния модул, инициализираме сървър и му казваме да работи на локалния интерфейс, на порт 8000.

Един от най-важните компоненти в Diet е обектът $. Позволява ви достъп до контекста на заявката и отговора, когато се извика някакъв конкретен маршрут.

Вижте конзолата:

Да, конзолата Diet отпечатва усмивка.

По същия начин можем да използваме обекта $ за достъп до обекта за отговор и да предадем данни обратно на клиента.

Това ни дава това:

Това всъщност беше доста лесно. Това, което харесвам в Diet, е интуитивният начин, по който мога да манипулирам обектите за заявки и отговори, и краткият синтаксис, с който определяте HTTP маршрути.

Middleware също е доста важен. Да предположим, че искате 3 задачи да бъдат изпълнени в определена последователност, когато се извика определен маршрут. Диетата ви позволява да пишете персонализирани функции на междинния софтуер и да ги прикачите към маршрут.

След като дефинирате маршрут и посочите кои функции на мидълуер трябва да изпълнява, вие дефинирате тези функции, предавайки $ обекта на всяка от тях. Можете да манипулирате $ обекта вътре в тези функции, което означава, че можете да разбиете сложна задача на парчета и да присвоите резултатите им по по-структуриран начин. Много често срещан пример - обработка на качване на изображение, прилагане на филтри към него, запазване в S3 и връщане на връзка към готовото изображение. Всяка стъпка тук може да бъде разделена на поредица от функции на междинния софтуер и да бъде прикрепена към POST маршрут.

и ето резултата:

И накрая, множество домейни! Можете да хоствате множество приложения в една и съща кодова база на различни домейни или поддомейни.

Работата с диета е много забавна и се надявам и вие да мислите така след този пост! Внимавайте за следващите ми няколко публикации за Koa и сравняване на тези две рамки.

Можете да намерите примерния код за тази публикация тук: https://github.com/rudimk/node-koa-diet

Ако харесате публикацията ми, моля, ударете малкото зелено сърце отдолу и помогнете на другите да го открият!:)