Node.js — это управляемая событиями инфраструктура ввода/вывода для JavaScript-механизма V8 на UNIX-подобных платформах. Node.js кросс-платформенный и с открытым исходным кодом, он даст разработчикам все необходимые инструменты для создания на лету сетевых и серверных приложений, при этом позволяя писать весь код на JavaScript, независимо от операционной системы.
Возможно, самой большой особенностью Node.js является пакетный менеджер NPM который позволяет Node.js разработчикам подключиться к библиотеке с более чем 220,000+ уникальных модулей, которые могут быть легко использованы для начала создания приложений, платформ и программного обеспечения.
Node.js официально скачали более 90,000,000 раз. Node.js, безусловно, завоевал сердца и умы веб-разработчиков, но он также может быть использован и в других сферах, например в работе с роботами, дронами, и другими интересными вещами.
Ниже мы рассмотрим 20 Node.js фреймворков для веб разработки. Перейдем к списку!
Express
Express — это минималистичный и гибкий веб-фреймворк для приложений Node.js, предоставляющий обширный набор функций для мобильных и веб-приложений.
Express, как хорошо известно, развивается своим путём, в отличие от других фреймворков, во многом опирающихся на Rails, но также много позаимствовал из другого Ruby-фреймворка под названием Sinatra. Концепция простая: фреймворк предоставляет достаточно возможностей для запуска и работы «на лету», не требуя много времени на подготовку.
Это фреймворк, делающий создание большинства сайтов очень простым. Первое, что вам нужно будет сделать — установить его. Вместе с командой node у вас появится команда npm. Этот инструмент даёт вам доступ к колоссальному количеству модулей, созданных сообществом, и Express как раз один из них.
> Пример разработки на Express.
> Официальный сайт
Meteor
Meteor является MVC фреймворком с открытым исходным кодом, с помощью которого вы можете создавать Web-приложения реального времени. Одна из важнейших особенностей платформы состоит в том, что она позволяет использовать один и тот же код как на стороне сервера, так и на стороне клиента. Между сервером и клиентом, как правило, передаются данные, а не HTML-код. Фреймворк поддерживает OS X, Windows и Linux. Его реактивная модель программирования позволяет создавать приложения используя меньше JavaScript кода.
> Пример разработки на Meteor.
> Официальный сайт
MEAN
MEAN (аббревиатура от MongoDB, Express.js, Angular.js, Node.js) — набор (комплекс) серверного программного обеспечения, который, подобно LAMP, используется для веб-разработки. На уровне клиента, сервера и базы данных весь стек MEAN написан на JavaScript. Смещение базовой платформы с ОС (Linux) к среде исполнения JavaScript (Node.js) несет с собой независимость от ОС: Node.js работает на Windows и OS X так же, как и на Linux.
Главный сдвиг между LAMP и MEAN заключается в переходе от традиционного генерирования страниц на стороне сервера к ориентации на одностраничные приложения (SPA) на стороне клиента.
> Пример разработки на MEAN.
> Официальный сайт
Flatiron
Flatiron — это full-stack фреймворк который позволяет разработчикам создавать десктопные и мобильные приложения с повторно используемыми компонентами. Основные возможности фреймворка включают в себя: встроенную шаблонную систему, систему управления плагинами и многое другое.
> Официальный сайт
Locomotive
Locomotive позиционирует себя как один из самых мощных Node.js фреймворков, благодаря его поддержке паттерна MVC и REST принципов, а также безотказной работе с Express. Locomotive хорошо интегрирован с базами данных и шаблонизаторами, что заставляет разработчиков раз за разом возвращаться к этому обширному фреймворку.
> Официальный сайт
Total
Total.js, без всякой видимой причины, является одним из самых забытых Node.js фреймворков, Total.js большой и богатый фреймворк, он предоставляет большие возможности для разработчиков. Он поддерживает дружественные URL, XHR, JSON, LESS CSS (CSS 3), минимизатор javascript, защиту XSS, ресурсы, модули, а также поддерживает архитектуру MVC.
У данного фреймворка нет никаких зависимостей. Весь функционал располагается в его ядре. Вы можете устанавливать любой модуль при помощи Node Package Manager. Единственный заметный минус это производительность в сравнении с тем же Express.js.
> Официальный сайт
Koa
Команда разработчиков фреймворка Express.js создала еще один фреймворк под названием Koa.js — футуристический фреймворк следующего поколения для Node.js, который обещает быть более кратким и ярким, в сравнении с Express.js. Koa.js сфокусирован на создании веб приложений и API, его главное преимущество это генераторы, которые являются отличным способ избежать колбеков, а также помощь разработчикам в исправлении ошибок.
> Официальный сайт
Hapi
Менее известный фреймворк, который разрабатывается командой Walmart Labs. В отличие от Express и Restify у него несколько другой подход, предоставляющий больший функционал сразу из коробки. К плюсам можно отнести полный контроль над приемом запросов и детальная справка с генерацией документации.
> Официальный сайт
Diet
Diet.js это очень маленький модульный Node.js фреймворк для создания быстрых и масштабируемых API и приложений. Вы можете использовать хост-контроллер для управления несколькими хостами, маршрутизатор для создания чистых API и URL, ПО позволяет расширить ваши приложения и API с модулями. Несмотря на то, что фреймворк очень легкий, он приносит максимальный результат, а также у вас будет доступ к исходному коду, что позволит стать контрибьютором всякий раз, когда вам захочется.
> Официальный сайт
Compound
Compound.js это один из самых надежных MVC фреймворков, который позволяет разработчикам создавать приложения на лету. Также Compound имеет хорошую поддержку сообщества и обширную документацию.
Compound много позаимствовал у Ruby On Rails, так как этот фреймворк обеспечивает аналогичные логические выражения и способы мышления. В сети можно найти много руководств о том, как построить полноценные приложения на Compound.js и RESTful API-интерфейсы для тех, кому нужно просто быстрое API решение. Также Amazon AWS обеспечивает интеграцию Node.js + Compound.js.
> Официальный сайт
Geddy
Geddy — очень интересный фреймворк от Github-пользователя mde. Его особенности: модульность, понятный код и автоматическая генерация шаблонов приложений. Есть интеграция с socket.io и встроенным модулем авторизации passportjs. Для создания надежных приложений в реальном времени Geddy.JS требуется всего несколько команд. В целом же фреймворк предоставляет довольно большой набор команд, которые работают через интерфейс командной строки и позволяют автоматизировать большинство рутинных задач, например, создание модели, контроллера, вида и даже настройку аутентификации интеграцию socket.io. Таким образом Geddy позволят разработчику сосредоточиться на основной логике приложения.
> Официальный сайт
Sails
Sails.js — это MVC фреймворк, который позволяет легко и быстро создавать Node.js приложения. Sails.js лучше всего подходит для создания реалтаймовых приложений. Он разработан на основе шаблона MVC (Model-View-Controller), как Ruby On Rails, но также поддерживает требования современных приложений: программные интерфейсы с масштабируемой, сервисно-ориентированной архитектурой. Этот фреймворк особенно хорошо подходит для разработки чатов, инструментальных панелей реального времени и многопользовательских игр.
> Официальный сайт
Adonis
Adonis настоящий MVC фреймворк для Node.js с правильной основой. Он несет в себе концепции сервис провайдеров из популярного PHP фреймворка Laravel для создания масштабных приложений, а также использования всех возможностей ES6, чтобы сделать ваш код более точным и поддерживаемым.
> Официальный сайт
Rhapsody
Основное ядро Rhapsody.js поддерживается фреймворком Express.js. Rhapsody помогает разработчикам создавать RESTful API-интерфейсы для моделей, фреймворк поддерживает сокеты, а также предоставляет широкий выбор уникальных особенностей, которые могут быть использованы в среде real-time разработки. Работает со всеми базами данных.
> Официальный сайт
Strapi
Вместо того, чтобы сосредоточиться на создании инфраструктуры приложения, Strapi поможет вам сосредоточиться на создании логики, которая может быть использована повторно. Фреймворк является отличным решением для тех разработчиков программного обеспечения, которые хотят создавать приложения в течение нескольких дней (или часов), а не тратить недели на структурирование и проектирование.
Strapi создан, с помощью фреймворка Koa.js. Состоит на 100% из JavaScript.
Вопросу безопасности в Strapi отведено особое внимание, фреймворк поставляется с несколькими слоями безопасности, которые работают только в зависимости от ваших потребностей.
> Официальный сайт
SocketStream
Socketstream — это фреймворк для Node.js, позволяющий создавать одностраничные web-приложения, работающие в реальном времени.
Данные между сервером и клиентом передаются в асинхронном режиме через web-сокеты как высокоскоростные двунаправленные RPC-вызовы, что позволяет создавать по-настоящему быстрые веб-приложения со сверх-отзывчивостью. Подробнее здесь.
> Официальный сайт
Mojito
Mojito — это JavaScript веб-фреймворк, который позволяет писать программы для клиентской и серверной части. С Mojito разработчикам больше не придется писать разные коды для бекенда и фронтенда. Если JavaScript не включен в браузере, Mojito-приложение будет по-прежнему исполняться на стороне сервера, с помощью одного и того же кода.
> Официальный сайт
Catberry
Catberry.js — это фреймворк для разработки изоморфных JavaScript-приложений на node.js с использованием модульной архитектуры и быстрых механизмов рендеринга. Этот фреймворк позволяет написать модуль приложения один раз и использовать его как на сервере для рендеринга страниц для поисковых роботов, так и в браузере для одностраничного приложения, запрашивая только данные для шаблонов. Подробнее здесь.
> Официальный сайт
Seneca
Seneca уникален в нашем списке Node.js фреймворков, так как, на самом деле, это набор инструментов, который работает как фреймворк. Seneca даст вам доступ к ряду плагинов, которые помогут вам сохранить саму основу приложения, которое вы создаете. И такая функциональность позволяет направить внимание на более важные аспекты приложения. Seneca будет заботиться о таких вещах, как базы данных, компоненты и зависимости, поэтому все что вам нужно будет делать, это просто писать код. Seneca поддерживает команды, так что всякий раз, когда ваше приложение обнаружит соответствующее значение, оно будет вызывать соответствующую команду, чтобы помочь вам выполнить задачи. Intel, CoderDojo, GSD и другие не менее известные компании, активно пользуются преимуществами Seneca.
> Официальный сайт
ActionHero
ActionHero является одним из самых известных API фреймворков. Он поможет вам быстро разрабатывать масштабируемые и многократно используемые Node.js API серверы для ваших проектов. ActionHero выступает в качестве инструментария который позволит вам построить такие API серверы, которые будут изначально работать вместе с существующими приложениями и платформами. С десятками тысяч пользователей, вы всегда сможете найти правильные ответы и идеи для обеспечения ежедневного эффективного рабочего процесса с ActionHero.
> Официальный сайт
Nodal
Nodal.js — это специально созданный веб-сервер для Node.js разработчиков. Это full-stack фреймворк, который позволяет облегчить процесс принятия жестких решений и дает пространство для создания устойчивых продуктов в гораздо более короткий промежуток времени, чем обычно. Те, кто используют Heroku могут развернуть свои Nodal сервера за несколько щелчков мыши.
Фреймворк новый, но уже получил большую поддержку от ветеранов, которые использовали такие фреймворки как Джанго.
> Официальный сайт
Надеюсь данная подборка будет вам полезна. Если вы не нашли в списке свой любимый фреймворк, упомяните его в комментарии.
Комментарии (20)
aktmtm
29.11.2016 21:20Вот хороший фреймворк: http://feathersjs.com/
Feathers is now the 4th most popular real-time web framework based on Github stars and monthly downloads.
Mithgol
29.11.2016 21:29-1У меня вопрос насчёт первого из упомянутых выше фрэймворков — насчёт Express.js:
akzhan
30.11.2016 00:19+3Анализ логов — задача ближе к администрированию, которое склонно к некоторой консервативности, да и критерии отбра там иные, язык программирования обычно не имеет значения. Важнее производительность и т.п.
Например, у нас используется стек ELK.
S_A
30.11.2016 04:34+1По описанию очень понравился strapi (хотя необходимость регистрировать аккаунт смутила. впрочем метеор тоже не без этого). Иду по getting started и прямо после
strapi new strapi_app cd strapi_app strapi start
мне говорят что packages.json corrupted и обкидывают трэйсами исключения про невозможно найти lodash. Обидновато до безобразия.
zapolnoch
30.11.2016 13:16+1Просто оставлю это здесь — http://nodeframework.com/
Mithgol
04.12.2016 13:55Там с такою непринуждённостью совершается разделение
MVC-фрэймворков на «Sinatra-подобные» и «Rails-подобные», как если бы термины эти могличто-то значить не для одних только программистов на языке Ruby, решившихся потихоньку переходить на JavaScript.
Serg-Msk
05.12.2016 00:52Бросается в глаза, что на гитхабе у Метеора на порядок больше последователей(?), чем у всех остальных фреймфорков
paratagas
30.11.2016 17:50+2Есть интересный фрэймворк для создания десктопных приложений под Ноду — Electron. Еще есть возможность работать с микроконтроллерами типа Arduino с помощью платформы Johnny-Five
taujavarob
30.11.2016 22:06+3Нет сравнения трендов.
Какие уже мертвы. Какие при смерти. Какие на подъёме.
Ernado
Думаю, стоит добавить в перечень информацию об Impress Application Server — Node.js проекте активно разрабатываемом MarcusAurelius