Основные библиотеки и фреймворки node.js

Разработка новых модулей и библиотек для node.js происходит со сверхсветовой скоростью, и почти каждый день на свет появляются все новые и новые продукты. Процесс выбора подходящего инструмента всегда неприятен, долог и связан с перелопачиванием тонн информации, это руководство поможет выбрать направление и сделать верный и обдуманный выбор.
Автор данного руководства не считает себя экспертом, и абсолютно точно руководство не содержит ВСЕХ библиотек, которые существуют на данный момент. Если вы считаете, что здесь чего-то не хватает, не стесняйтесь, добавляйте в комментариях. Здесь перечислены далеко не все библиотеки, а лишь те, которые крайне полезны и практически необходимы в разработке, то есть самые основные. Те, которые не пропадут через месяц или два, хорошо задокументированы и могут быть использованы средним программистом без необходимости перечитывать весь ее код. Если вам нужен исчерпывающий список библиотек, найти его можно здесь.

Фреймворки

Connect
Страница и документацияGitHub — Введение
Connect считается «вспомогательным» фреймворком, содержащим в себе множестве инструментов, которые нужны при разработке типичного веб приложения, и нет в комплекте с node js. Люди, знакомые с Hydrogen, сразу поймут в чем прелесть этого подхода. В комплекте идет логгер, роутер, сессии и поддержка cookies, профайлер, поддержка http и https протоколов, сервер раздачи статического контента, и так далее. Так как connect так легко расширяем, существует целая куча дополнений, которые предлагают мощный функционал, например интернационализацию (i18n), JSONP, JSON-RPC, oAuth, и множество других библиотек, так необходимых нам. Так как фреймворк великолепен и качественен, почти за каждым Node.js фреймворком стоит Connect

Express
ВебсайтGitHub — Документация — Видео учебник
Express стал первым по настоящему популярным Node.js фреймворком, не без причины — у фреймворка невероятно изящная и прямолинейная архитектура, а также отличная документация. Одно НО: Express предназначен для быстрых, но небольших приложений. Если вы рассчитываете, что вся логика вашего приложения, включая бизнес-логику вместится в один js-файл, то Express — как раз то, что вам надо. Фреймворк базируется на Connect, так что многие вкусные плюшки вспомогательного слоя, вроде кэширования или gzip сжатия доступно по умолчанию. Отшлифованный фреймворк для небольших приложений.

Geddy
СтраницаGitHub — Документация — Введение
Geddy похож на Rails и Django (и даже очень сильно поход на cakePHP). Это классический MVC фреймворк, легкий, быстрый и продуманный. Работа с базами данных великолепна, роутинг просто сказка, и, если вы до этого разделяли Вид, Контроллеры и Модели как положено в отдельные файлики, с Geddy вы будете чувствовать себя как дома. Geddy — не только фреймворк, также это среда разработки. В нем есть инструмент командной строки, который позволяет одно командой добавлять новые модели, контроллеры и создавать новые проекты, с базовой структурой элемента. На самом деле, приложение даже запускается командой ‘geddy’, оставляя node.js прозрачным и абстрагируясь от него. Документации иногда бывает недостаточна, так как фреймворк меняется и развивается очень быстро. Тем не менее, догнать и идти в ногу с развитием фреймворка достаточно легко — особенно, если раньше вы работали с MVC. While Насколько Express хорош для маленьких приложений, настолько же Geddy хорош для средне- больших проектов.

Другие библиотеки, о которых стоит знать
Now
СтраницаДемо видеоДокументацияНачало работыGitHub
Now (или Now.js) — это расширение библиотеки Socket.io. Он интуитивно прост: Now добавляет ‘now’ нэймспейс (глобальную переменную) на стороне клиента и Node.js сервера, и все ваши данные и вызовы функции синхронизируются между ними. Это означает что вы можете писать функции на стороне клиента, и вызывать их с сервера, и наоборот без создания угроз к остальному коду приложения. Так как он работает через Socket.io (смотри ниже), скорость вызова функций между клиентом и сервером почти мгновенны. На нем можно эффективно создавать многопользовательские приложения, такие как чат в реальном времени, например, за пару десятков строк. Очень изящен, находится в стадии активной доработки, постоянно добавляются новые возможности. Автор рекомендует его использовать вместо socket.io во всех приложениях, кроме тех, где небольшие задержки уместны. Каждый удаленный вызов посылает строку JSON строку данных, так что если в приложении критично рациональное использование интернет канала или остро стоит вопрос задержки, всё же стоит использовать голый Socket.io (что совсем не сложно).

Socket.io
Страница и документацияGitHub
Socket.io — главная причина, по которой многие вообще начали использовать node js. Он представляет из себя клиент+ сервер вебсокетов, который чрезвычайно легко использовать, и имеет реализацию вынужденного перехода на запасные виды клиент-серверного соединения. Например, если браузер не поддерживает вебсокеты, будет использован флэш, если флэш на установлен, будет использовано ajax long polling. API реализован таким образом, что какой бы транспорт ни был использован в конечном итоге, вам не нужно совершенно об этом беспокоиться — Socket.io возьмет на себя всю тяжелую работу, и оставит вам только работать со входящими и исходящими данными. Великолепная библиотека для создания клиент-серверных, динамичных браузерных приложений(игры, мониторинг). Посетите сайт, и убедитесь, насколько все просто.

3 комментария к “Основные библиотеки и фреймворки node.js”
  1. Итан 06.07.2013
  2. Миша 30.10.2013
    • superk 30.10.2013

Оставить комментарий