За последние годы Node.js значительно повысил свой статус от экспериментальной технологии до основы для серьезных проектов. Node.js дает возможность построить достаточно сложные, высоконагруженные приложения на простом, элегантном и, самое главное, легковесном механизме. Но прежде всего Node.js – это совершенно увлекательная и захватывающая вещь, с которой по-настоящему интересно работать!


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)


  1. Ernado
    29.11.2016 20:52
    +1

    Думаю, стоит добавить в перечень информацию об Impress Application Server — Node.js проекте активно разрабатываемом MarcusAurelius


  1. 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.


  1. Mithgol
    29.11.2016 21:29
    -1

    У меня вопрос насчёт первого из упомянутых выше фрэймворков — насчёт Express.js:


    1. akzhan
      30.11.2016 00:19
      +3

      Анализ логов — задача ближе к администрированию, которое склонно к некоторой консервативности, да и критерии отбра там иные, язык программирования обычно не имеет значения. Важнее производительность и т.п.


      Например, у нас используется стек ELK.



  1. gloomyBrain
    29.11.2016 21:57

    ПО промежуточного слоя

    Это просто замечательно, спасибо! =)


  1. alprk
    29.11.2016 22:00
    +8

    Возможно, стоит добавить ссылку на фреймворк LoopBack


  1. kost
    30.11.2016 00:56

    Надо больше ссылок на livecoding.tv в тексте!


  1. anotherpit
    30.11.2016 03:17
    +3

    Судя по Гитхабу, Geddy и Locomotive, скорее мертвы, чем живы.


  1. S_A
    30.11.2016 04:34
    +1

    По описанию очень понравился strapi (хотя необходимость регистрировать аккаунт смутила. впрочем метеор тоже не без этого). Иду по getting started и прямо после

    strapi new strapi_app
    cd strapi_app
    strapi start
    

    мне говорят что packages.json corrupted и обкидывают трэйсами исключения про невозможно найти lodash. Обидновато до безобразия.


  1. zapolnoch
    30.11.2016 13:16
    +1

    Просто оставлю это здесь — http://nodeframework.com/


    1. Tauyekel
      30.11.2016 16:58
      +1

      Отличная вещь, спасибо


    1. Mithgol
      04.12.2016 13:55

      Там с такою непринуждённостью совершается разделение MVC-фрэймворков на «Sinatra-подобные» и «Rails-подобные», как если бы термины эти могли что-то значить не для одних только программистов на языке Ruby, решившихся потихоньку переходить на JavaScript.


    1. Serg-Msk
      05.12.2016 00:52

      Бросается в глаза, что на гитхабе у Метеора на порядок больше последователей(?), чем у всех остальных фреймфорков


  1. khusamov
    30.11.2016 16:09
    +1

    Что значит "в гибридном родном/веб исполнении"?


  1. paratagas
    30.11.2016 17:50
    +2

    Есть интересный фрэймворк для создания десктопных приложений под Ноду — Electron. Еще есть возможность работать с микроконтроллерами типа Arduino с помощью платформы Johnny-Five


  1. andreysmind
    30.11.2016 19:36

    Больше фреймворков богу Жаваскрипта!


  1. corri
    30.11.2016 21:16

    Люблю JS и ноду в частности, удобно ваять pet-проекты, но это обилие удурчает.


  1. taujavarob
    30.11.2016 22:06
    +3

    Нет сравнения трендов.

    Какие уже мертвы. Какие при смерти. Какие на подъёме.